ingress-nginx: nginx-ingress-controller not updating configuration

Problem

I’m experiencing problems with nginx-ingress-controller not updating the nginx configuration even though it logs the ingress events.

I’m using gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.6

Debug info

When viewing the logs for the ingress controller I see the following:

I0530 11:17:20.584359       9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"kube-lego", Name:"kube-lego-nginx", UID:"3497760c-3fa6-11e7-91bb-42010af0017f", APIVersion:"extensions", ResourceVersion:"10209024", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress kube-lego/kube-lego-nginx
I0530 11:17:20.899245       9 status.go:302] updating Ingress default/assets status to [{IP } {IP2 } {IP3 }]
I0530 11:17:20.904150       9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"assets", UID:"8c295151-4529-11e7-ba87-42010af0017f", APIVersion:"extensions", ResourceVersion:"10209025", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress default/assets

But the ingress controller is not logging any configuration update.

Normally I see this being logged: I0529 16:33:32.984297 9 controller.go:427] ingress backend successfully reloaded...

However that’s not being logged in this case.

when looking at the generated config with the following command: kubectl exec -it --namespace kube-system nginx-ingress-controller-7d7wg cat /etc/nginx/nginx.conf

The configuration does not contain the expected changes from the ingress definition.

Attempted fixes

deleting the ingress and applying it again

This resulted in this line being logged. Still no configuration change

Logs after deleting:

I0530 11:37:08.544328       9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"assets", UID:"8c295151-4529-11e7-ba87-42010af0017f", APIVersion:"extensions", ResourceVersion:"10210789", FieldPath:""}): type: 'Normal' reason: 'DELETE' Ingress default/assets

After re-applying:

I0530 11:39:45.247382       9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"assets", UID:"ada80611-452c-11e7-ba87-42010af0017f", APIVersion:"extensions", ResourceVersion:"10211021", FieldPath:""}): type: 'Normal' reason: 'CREATE' Ingress default/assets
I0530 11:39:50.900844       9 status.go:302] updating Ingress default/assets status to [{35.187.174.58 } {35.189.211.19 } {35.189.238.220 }]
I0530 11:39:50.905120       9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"assets", UID:"ada80611-452c-11e7-ba87-42010af0017f", APIVersion:"extensions", ResourceVersion:"10211032", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress default/assets

Still no changes to the generated nginx configuration.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 7
  • Comments: 19 (10 by maintainers)

Commits related to this issue

Most upvoted comments

@2color please check if the image quay.io/aledbf/nginx-ingress-controller:0.130 solves the issue

@stibi yes. Please open a new issue if you see this in 0.9-beta.10 (post the logs after the update of the configmap)

Hi guys, is the fix part of the beta 10 image? I have just deployed the beta10 image on my cluster and I’m having the exact same problem as described here.

Thanks @aledbf

I am seeing a similar issue, I upgraded from my patched beta.5 from #696 to beta.7 and I am seeing 502s after deploys.

In particular, I can verify that after a Deployment has spun up a new ReplicaSet matching the appropriate Service selector, Endpoints have been populated for the new PodIPs, but the upstream block in the nginx.conf continues to have the PodIP of the previous ReplicaSet’s pod(s) even though those Pods have terminated

Rolling back fixes; I believe that deleting the nginx-ingress pods also has replacements come up with an initially valid config but not track new changes

Of likely relevance, I am still working against 1.5 apiserver and kubelets.