kuryr-k8s does not reconnect to API in case of API restart
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kuryr-kubernetes |
Fix Released
|
High
|
Maysa de Macedo Souza |
Bug Description
To reproduce:
1) launch kuryr-k8s-
2) restart kubernetes-api
Expected behaviour:
kuryr-k8s would reconnect to k8s-api
Observed:
kuryr-k8s stops watching for any events
2017-07-20 09:28:13.481 7 INFO kuryr_kubernete
Traceback (most recent call last):
File "/usr/local/
listener.
File "/usr/local/
result = function(*args, **kwargs)
File "/usr/local/
for event in self._client.
File "/usr/local/
for line in response.
File "/usr/local/
for chunk in self.iter_
File "/usr/local/
raise ChunkedEncoding
ChunkedEncoding
Removing descriptor: 5
2017-07-20 09:28:14.120 7 DEBUG kuryr_kubernete
Traceback (most recent call last):
File "/usr/local/
listener.
File "/usr/local/
result = function(*args, **kwargs)
File "/usr/local/
for event in self._client.
File "/usr/local/
for line in response.
File "/usr/local/
for chunk in self.iter_
File "/usr/local/
raise ChunkedEncoding
ChunkedEncoding
Removing descriptor: 3
2017-07-20 09:28:14.121 7 INFO kuryr_kubernete
2017-07-20 09:28:14.122 7 INFO kuryr_kubernete
Traceback (most recent call last):
File "/usr/local/
listener.
File "/usr/local/
result = function(*args, **kwargs)
File "/usr/local/
for event in self._client.
File "/usr/local/
for line in response.
File "/usr/local/
for chunk in self.iter_
File "/usr/local/
raise ChunkedEncoding
ChunkedEncoding
Removing descriptor: 4
summary: |
- kuryr-k8s does not reconnect to API in case of failure + kuryr-k8s does not reconnect to API in case of API restart |
Changed in kuryr-kubernetes: | |
milestone: | none → pike-3 |
Changed in kuryr-kubernetes: | |
status: | New → Triaged |
status: | Triaged → In Progress |
There's two ways to address this:
a) kuryr controller service manager restarts exited watches with a maximum reconnect attempts
b) Implement /healthz/k8s API endpoint so a liveness probe can decide to restart the controller.
We probably need both approaches.