ingress-nginx: GCE health check does not pick up changes to pod readinessProbe
Importing this issue from https://github.com/kubernetes/kubernetes/issues/43773 as requested.
Kubernetes version (use kubectl version
): 1.4.9
Environment:
- Cloud provider or hardware configuration: GKE
- OS (e.g. from /etc/os-release):
- Kernel (e.g.
uname -a
): - Install tools:
- Others:
What happened:
I created an ingress with type GCE
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: admin-proxy
labels:
name: admin-proxy
annotations:
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: ingress-admin-proxy
backend:
serviceName: admin-proxy
servicePort: 80
This set up the health-check on the google cloud backend endpoint to call “/” as documented.
Unfortunately my service doesn’t return 200 on "/"
and so I added a readinessCheck to the pod as suggested by the documentation.
What you expected to happen:
I expected the health check to be automatically updated.
Instead I had to delete the ingress and re-create it in order for the health-check to update.
How to reproduce it (as minimally and precisely as possible):
- Create a deployment with no readiness probe.
- Create an ingress pointing to the pods created by that deployment.
- Add a readiness probe to the deployment.
Anything else we need to know:
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 4
- Comments: 17 (9 by maintainers)
To answer my own question and for everybody landing here with the same problem, rotate the name of the service in your rule or backend and the controller will pick up the path correctly. I assume this could be done with 0 downtime creating a new rule and deleting the old one.