title: How can I provide my AKS (External IP <Pending>)?
body: <p>I want to deploy my microservice infrastructure as AKS at Azure. I created a node on which 3 microservices run. My API gateway should be able to be addressed with a public IP and data should be forwarded to my other two microservices.</p>
  
  <pre><code>PS /home/jan-marius&gt; kubectl get pods
  NAME                          READY   STATUS    RESTARTS   AGE
  apigateway-77875f89cb-qcmnf   1/1     Running   0          18h
  contacts-5ccc69f74-x287p      1/1     Running   0          18h
  templates-579fc4984b-srv7h    1/1     Running   0          18h
  </code></pre>
  
  <p>so far so good.After that I created a public IP from the Microsoft Docs and changed my Yaml file as follows.</p>
  
  <pre><code>az network public-ip create \
      --resource-group myResourceGroup \
      --name myAKSPublicIP \
      --sku Standard \
      --allocation-method static
  </code></pre>
  
  <pre><code>apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: apigateway
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: apigateway
    template:
      metadata:
        labels:
          app: apigateway
      spec:
        nodeSelector:
          "beta.kubernetes.io/os": linux
        containers:
          - name: apigateway
            image: xxx.azurecr.io/apigateway:11
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 512Mi
            ports:
            - containerPort: 8800
              name: apigateway
  
  ---
  apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.beta.kubernetes.io/azure-dns-label-name: tegos-sendmessage
    name: apigateway
  spec:
    loadBalancerIP: 20.50.10.36
    type: LoadBalancer
    ports:
    - port: 8800
    selector:
      app: apigateway
  
  
  ---
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: contacts
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: contacts
    template:
      metadata:
        labels:
          app: contacts
      spec:
        nodeSelector:
          "beta.kubernetes.io/os": linux
        containers:
        - name: contacts
          image: xxx.azurecr.io/contacts:12
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 250m
              memory: 512Mi
          ports:
          - containerPort: 8100
            name: contacts
  
  ---
  apiVersion: v1
  kind: Service
  metadata:
    name: contacts
  spec:
    ports:
    - port: 8100
    selector:
      app: contacts
  ---
  
  
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: templates
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: templates
    template:
      metadata:
        labels:
          app: templates
      spec:
        nodeSelector:
          "beta.kubernetes.io/os": linux
        containers:
        - name: templates
          image: xxx.azurecr.io/templates:13
          resources:
           requests:
              cpu: 100m
              memory: 128Mi
           limits:
              cpu: 250m
              memory: 512Mi
          ports:
           - containerPort: 8200
             name: templates
  ---
  apiVersion: v1
  kind: Service
  metadata:
    name: templates
  spec:
    ports:
    - port: 8200
    selector:
      app: templates
  </code></pre>
  
  <p>However, if I want to call the external IP address with get service, the status is </p>
  
  <pre><code>S /home/jan-marius&gt; kubectl get service apigateway
  NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
  apigateway   LoadBalancer   10.0.181.113   &lt;pending&gt;     8800:30817/TCP   19h
  </code></pre>
  
  <pre><code>PS /home/jan-marius&gt; kubectl describe service apigateway
  Name:                     apigateway
  Namespace:                default
  Labels:                   &lt;none&gt;
  Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                              {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"service.beta.kubernetes.io/azure-dns-label-name":"tegos-sendmessage"},"nam...
                            service.beta.kubernetes.io/azure-dns-label-name: tegos-sendmessage
  Selector:                 app=apigateway
  Type:                     LoadBalancer
  IP:                       10.0.181.113
  IP:                       20.50.10.36
  Port:                     &lt;unset&gt;  8800/TCP
  TargetPort:               8800/TCP
  NodePort:                 &lt;unset&gt;  30817/TCP
  Endpoints:                10.244.0.14:8800
  Session Affinity:         None
  External Traffic Policy:  Cluster
  Events:
    Type    Reason                Age                 From                Message
    ----    ------                ----                ----                -------
    Normal  EnsuringLoadBalancer  5m (x216 over 17h)  service-controller  Ensuring load balancer
  </code></pre>
  
  <p>I read on the net that this error can occur if the locations of the cluster and the external IP or the LoadBalancer types do not match. I am sure that the locations match. I can't be sure about the LoadBalancer types. The external IP SKU is set to standard. However, I have never defined the type of LoadBalancer and I don't know where it can be found. Can someone tell me what I'm doing wrong and how I can provide my web service?</p>
  
  [![enter image description here][1]][1]
  <pre><code>PS /home/jan-marius&gt; az aks show -g SendMessageResource -n SendMessageCluster
  {
    "aadProfile": null,
    "addonProfiles": {
      "httpapplicationrouting": {
        "config": {
          "HTTPApplicationRoutingZoneName": "e6e284534ad74c0d9c01.westeurope.aksapp.io"
        },
        "enabled": true,
        "identity": null
      },
      "omsagent": {
        "config": {
          "loganalyticsworkspaceresourceid": "/subscriptions/a553134ba7eb-cb83-484d-a05d-44bb70125b8a/resourcegroups/defaultresourcegroup-weu/providers/microsoft.operationalinsights/workspaces/defaultworkspace-a55ba7eb-cb83-484d-a05d-44bb334170125b8a-weu"
        },
        "enabled": true,
        "identity": null
      }
    },
    "agentPoolProfiles": [
      {
        "availabilityZones": null,
        "count": 1,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "nodepool1",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.15.11",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": "Standard_DS2_v2"
      }
    ],
    "apiServerAccessProfile": null,
    "autoScalerProfile": null,
    "diskEncryptionSetId": null,
    "dnsPrefix": "SendMessag-SendMessageResou-a55ba7",
    "enablePodSecurityPolicy": null,
    "enableRbac": true,
    "fqdn": "sendmessag-sendmessageresou-a55ba7-14596671.hcp.westeurope.azmk8s.io",
    "id": "/subscriptions/a55b3141a7eb-cb83-484d-a05d-44bb70125b8a/resourcegroups/SendMessageResource/providers/Microsoft.ContainerService/managedClusters/SendMessageCluster",
    "identity": null,
    "identityProfile": null,
    "kubernetesVersion": "1.15.11",
    "linuxProfile": {
      "adminUsername": "azureuser",
      "ssh": {
        "publicKeys": [
          {
            "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7bzXktZht3zLbHrz3Xpv3VNhtrj/XmBKOIHB0D0ZpBIrsfXcg9veBov8n3cU/F/oKIfqcL2xaoktVwZFz9AjEi7qPXdxrsVLjV2+w0kPyC3ZC5JbtLSO4CFgn0MtclC6mE3OPYczYPoFdZI3/w/AmoZ6TsT7MupkCjKtrYIIaDZ/22zuTMYMvJro7cfjKI5OSR7soybXcoFKw+3tzwO9Mv9lUQr7x0eRCUAUJN6OziEI9p36fLEnNgRG4GiJJZP5aqqsVRUDuu8PF9pO0YLMBr3b2HHgzpDwSebZ6TU//okuc30cqG/2v2LkjBDRGrs5YxiSv3+ejr/9A4XGWup4Z"
          }
        ]
      }
    },
    "location": "westeurope",
    "maxAgentPools": 10,
    "name": "SendMessageCluster",
    "networkProfile": {
      "dnsServiceIp": "10.0.0.10",
      "dockerBridgeCidr": "172.17.0.1/16",
      "loadBalancerProfile": {
        "allocatedOutboundPorts": null,
        "effectiveOutboundIps": [
          {
            "id": "/subscriptions/a55b3142a7eb-cb83-484d-a05d-44bb70125b8a/resourceGroups/MC_SendMessageResource_SendMessageCluster_westeurope/providers/Microsoft.Network/publicIPAddresses/988314172c28-d4da-431e-b7f8-5acb08e468b4",
            "resourceGroup": "MC_SendMessageResource_SendMessageCluster_westeurope"
          }
        ],
        "idleTimeoutInMinutes": null,
        "managedOutboundIps": {
          "count": 1
        },
        "outboundIpPrefixes": null,
        "outboundIps": null
      },
      "loadBalancerSku": "Standard",
      "networkMode": null,
      "networkPlugin": "kubenet",
      "networkPolicy": null,
      "outboundType": "loadBalancer",
      "podCidr": "10.244.0.0/16",
      "serviceCidr": "10.0.0.0/16"
    },
    "nodeResourceGroup": "MC_SendMessageResource_SendMessageCluster_westeurope",
    "privateFqdn": null,
    "provisioningState": "Succeeded",
    "resourceGroup": "SendMessageResource",
    "servicePrincipalProfile": {
      "clientId": "9009bcd8-4933-4641-b00b-237e157d86589b"
    },
    "sku": {
      "name": "Basic",
      "tier": "Free"
    },
    "type": "Microsoft.ContainerService/ManagedClusters",
    "windowsProfile": null
  }
  </code></pre>