I am encountering something very like what is described in #12462, when following https://docs.microsoft.com/en-us/azure/aks/ingress-static-ip. I run:
helm install stable/nginx-ingress --set controller.service.loadBalancerIP="<redacted>" --set controller.replicaCount=2
This is all as specified in the docs, yet, almost an hour later, I still see:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dandy-mule-nginx-ingress-controller LoadBalancer <redacted> <pending> 80:31563/TCP,443:32498/TCP 52m
I'm at a loss for how to proceed. I tried looking at the nginx-ingress pod logs, and assigned the AKS SP Contributor rights to the entire resource group so far, all to no avail. Any help would be appreciated!
⚠Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
I simplified my test case a little, attempting to let the k8s allocate the load balancer IP, as in this doc, so just:
helm install stable/nginx-ingress --set controller.replicaCount=2
and it still stays pending indefinitely. Since this is the first time that I tried this with an explicitly created service principal, I still suspect that there is something undocumented about the SP created implicitly with the AKS cluster. Again, even assigning it a Contributor role to the entire resource group isn't enough to get this done and I can't locate any error messages.
Thanks for the feedback! We are currently investigating and will update you shortly.
Thanks for reaching out @derekrprice As you found some other users have seen similar problems in the past. Generally deploying a new cluster will fix the issue. However if you are adding additional parameters outside of this doc there might be some other items getting hung up. I have gone through the doc as written and verified it works. So best route for you to go to get this resolved would be a technical support ticket.
If you don't have the ability to open a technical support ticket you can email me at [email protected] and provide me with your Azure SubscriptionID and link to this issue. I can then enable your subscription for that free support request.
I will close this for now and be on the lookout for that email if needed :)
@MicahMcKittrick-MSFT I'm also encountering this problem and unsure as to how to proceed :( Is creating a new cluster the best route to take?
Same issue here. I'm stuck with 5 IPs that can not be deleted and nothing is using them. Is there any solution?
Check the Public IP SKU. For some reason, if you use standard External IP stay pending but if you use basic it works in a few minutes
You can not change the SKU for a PIP you need to recreate one
Same problem, and this is is happening on a new cluster... The problem cannot be resolved with "recreating the cluster", it's just not feasible for production. Really, what is the solution here?
Also, could you please don't close the bugs that are not resolved, yet?
Same boat ! Static assignment in k8s did not work as documented in https://docs.microsoft.com/bs-latn-ba/azure/aks/static-ip
spec:
type: LoadBalancer
loadBalancerIP: x.x.x.x
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 \
zna3-aadfzdf LoadBalancer 10.0.93.134 \
Founded, you have to move the static IPs to the correct Resource-group of your Cluster, usually AKS automatically created a Loadbalancer mapping Resource-group MC-* for k8s.
_kubectl describe service_ can be useful
Please update the document or fix on azure backend.
Check the Public IP SKU. For some reason, if you use standard External IP stay pending but if you use basic it works in a few minutes
You can not change the SKU for a PIP you need to recreate one
I just want to mention that this fixed the issue for me. but unfortunately I had to delete my aks and create a new one with the parameters "--load-balancer-sku basic". which as @gitsupersmecher mentioned, is not a real fix, we need to have a fix for the standard sku as well.
Check the Public IP SKU. For some reason, if you use standard External IP stay pending but if you use basic it works in a few minutes
You can not change the SKU for a PIP you need to recreate oneI just want to mention that this fixed the issue for me. but unfortunately I had to delete my aks and create a new one with the parameters "--load-balancer-sku basic". which as @gitsupersmecher mentioned, is not a real fix, we need to have a fix for the standard sku as well.
create static IP with "--sku Standard"
STATICIP=$(az network public-ip create --resource-group <MC_your-RG> --name Your-public-ip-name --sku Standard --allocation-method static --query publicIp.ipAddress -o tsv)
And now:
helm install stable/nginx-ingress --name
\
--namespace\
--set rbac.create=true \
--set controller.replicaCount=2 \
--set controller.stats.enabled=true \
--set controller.metrics.enabled=true \
--set controller.nodeSelector."beta.kubernetes.io/os"=linux \
--set defaultBackend.nodeSelector."beta.kubernetes.io/os"=linux \
--set controller.service.externalTrafficPolicy="Local" \
--set controller.service.loadBalancerIP=${STATICIP}
thanx @ruedigerp ! it worked like a charm!!! :)
for those of us working in bash note that strings are a bit different:
helm install stable/nginx-ingress \
--name my-ingress-name \
--namespace my-ingress-namespace \
--set rbac.create=true \
--set controller.replicaCount=2 \
--set controller.stats.enabled=true \
--set controller.metrics.enabled=true \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.externalTrafficPolicy="Local" \
--set controller.service.loadBalancerIP="$STATICIP"
Most helpful comment
Founded, you have to move the static IPs to the correct Resource-group of your Cluster, usually AKS automatically created a Loadbalancer mapping Resource-group MC-* for k8s.
_kubectl describe service_ can be useful
Please update the document or fix on azure backend.