Docker Desktop Nginx ingress has no external IP sometimes

Viewed 301

I reset my entire Docker Desktop from factory settings and enable kubernetes. Then, I run kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.4/deploy/static/provider/cloud/deploy.yaml and wait for the ingress to be ready. Then, I deploy my application, which includes several services and an ingress definition.

The ingress is as follows:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/proxy-body-size: 100m
spec:
  ingressClassName: nginx
  rules:
  - host: test.project.com
    http:
      paths:
      - path: "/.*"
        pathType: "Prefix"
        backend:
          service:
            name: test-frontend
            port:
              number: 80

Checking on the service, I get:

NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
test-frontend   ClusterIP   10.104.106.210   <none>        80/TCP    40m

kubectl get services -n ingress-nginx returns

NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.100.44.33   <pending>     80:30753/TCP,443:31632/TCP   51m
ingress-nginx-controller-admission   ClusterIP      10.97.85.58    <none>        443/TCP                      51m

kubectl get ingresses returns

NAME           CLASS   HOSTS              ADDRESS   PORTS   AGE
test-ingress   nginx   test.project.com             80      31m

As you can see, Docker Desktop or the Ingress is not properly binding the ingress to localhost, as it usually does. What I've been doing for the last several weeks is constantly stopping, restarting, rebuilding and resetting my deployments, services, ingresses, nodes, my computer, and Docker desktop until it suddenly starts working. I have never been able to find out what actually fixes it, it seems almost random whether it works or not, and when it stops working.

The only interesting thing I can find involves the events of the test-ingress:

Events:
  Type    Reason  Age                  From                      Message
  ----    ------  ----                 ----                      -------
  Normal  Sync    35m (x3 over 42m)    nginx-ingress-controller  Scheduled for sync
  Normal  Sync    27m (x2 over 28m)    nginx-ingress-controller  Scheduled for sync
  Normal  Sync    7m55s (x2 over 14m)  nginx-ingress-controller  Scheduled for sync

Edit: It started working again after a restart of my desktop. Leaving this up for any ideas as to how to prevent this or how to fix it faster next time, as this is the 5th or 6th time this has happened.

0 Answers
Related