Timothy Pulliam
Timothy Pulliam

Reputation: 142

Can't curl AKS Load Balancer service

I have an AKS cluster with default settings. I'm trying to create a very simple Deployment/Service. The Service is type LoadBlanacer. I see the service is created, however I cannot curl the service public IP. I don't even get an error, curl just hangs.

$ kubectl get all --show-labels
NAME                         READY   STATUS    RESTARTS   AGE    LABELS
pod/myapp-79579b5b68-npb2g   1/1     Running   0          104m   app=myapp,pod-template-hash=79579b5b68

NAME                    TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE    LABELS
service/kubernetes      ClusterIP      10.0.0.1       <none>          443/TCP          26h    component=apiserver,provider=kubernetes
service/myapp-service   LoadBalancer   10.0.223.167   $PUBLIC_IP   8080:31000/TCP   104m   <none>

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE    LABELS
deployment.apps/myapp   1/1     1            1           104m   app=myapp

NAME                               DESIRED   CURRENT   READY   AGE    LABELS
replicaset.apps/myapp-79579b5b68   1         1         1       104m   app=myapp,pod-template-hash=79579b5b68
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: nginx:latest
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
  labels:
    app: myapp
spec:
  selector:
    app: myapp
  type: LoadBalancer
  ports:
  - port: 8080
    targetPort: 8080 # container port of Deployment; kubectl describe pod <podname> | grep Port
    nodePort: 31000 # http://external-ip:nodePort

Upvotes: 0

Views: 628

Answers (1)

Nataraj Medayhal
Nataraj Medayhal

Reputation: 1221

Depending on your requirements, you can create internal or public load balancer attached to application service. Post that you can access the service from outside the k8s cluster.

Upvotes: 1

Related Questions