New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kubernetes: Rules get removed in case of transient API server fault #406
Comments
By now, we identified this as a commonly made programming mistake when writing these kind of Kubernetes controller loops. We made the conceptionally equivalent mistakes in other projects, too, independent from each other, across team boundaries:
|
Is this issue resolved with #409 ? |
We needed a follow up: #410 Currently testing it. |
@linki so tests were successful or not? |
Discussed offline |
Can you please write here as well if this fixes the issue? |
@Raffo sure it's fixed and tested also in production. That's why I closed the issue, sorry that this was not clear. |
We had an issue with Skipper as Kubernetes Ingress Proxy which resulted in Rules being removed due to a temporary outage of the Kubernetes control plane (specifically the API server). Skipper kept running but every request was answered with a
404
.We identified the cause of the issue and explain it here:
loadAndConvert()
(https://github.com/zalando/skipper/blob/v0.9.78/dataclients/kubernetes/kube.go#L590)out
channel.)continue
and results in no rule being added for this particular ingress target to the desired rule set (https://github.com/zalando/skipper/blob/v0.9.78/dataclients/kubernetes/kube.go#L475-L479)Logs from Skipper (with some internal identifiers changed):
After fetching the Ingress objects, Skipper fails to retrieve the associated Services and removes the corresponding rules.
After that, even fetching the Ingress objects itself fails. The currently present rules will be retained.
Later, Skipper can both fetch the Ingresses and Services and consequently adds the rules back.
The text was updated successfully, but these errors were encountered: