В сети вы можете найти много вопросов, связанных с couldn't propagate object cache: timed out waiting for the condition
.На Github уже открыта проблема - https://github.com/kubernetes/kubernetes/issues/70044
В качестве одного из многих шагов для ее решения попробуйте:
- Перезагрузить кластер
- Перезапустить Docker deamon
- Обновите свою ОС
В случае, связанном с ISTIO, я пробовал это на Kubeadm, Minikube и GKE.Во всех случаях istio-policy-XXX-XXX
и istio-telemetry-XXX-XXX
были перезапущены из-за сбоя в жизнедеятельности.
telemetry example
---
Warning Unhealthy 8m49s (x9 over 9m29s) kubelet, gke-istio-default-pool-c41459f8-zbhn Liveness probe failed: Get http://10.56.0.6:15014/version: dial tcp 10.56.0.6:15014: connect: connection refused
Normal Killing 8m49s (x3 over 9m19s) kubelet, gke-istio-default-pool-c41459f8-zbhn Killing container with id docker://mixer:Container failed liveness probe.. Container will be killed and recreated.
policy example
---
Warning Unhealthy 7m28s (x9 over 8m8s) kubelet, gke-istio-default-pool-c41459f8-3c6d Liveness probe failed: Get http://10.56.2.6:15014/version: dial tcp 10.56.2.6:15014: connect: connection refused
Normal Killing 7m28s (x3 over 7m58s) kubelet, gke-istio-default-pool-c41459f8-3c6d Killing container with id docker://mixer:Container failed liveness probe.. Container will be killed and recreated.
Даже в примере документации вы можете заметить, что телеметрия и политика были перезапущены 2 раза.
Послепроверка как YAML (istio-demo.yaml, так и istio-demo-auth.yaml) я обнаружил, что телеметрия и политика Deployments
установили проверку жизнеспособности на 5 секунд.
livenessProbe:
httpGet:
path: /version
port: 15014
initialDelaySeconds: 5
periodSeconds: 5
Если вы будете использовать журналы kubectl в контейнере микшера из модуля istio-telemetry
, вы можете увидеть некоторые ошибки, такие как
2019-07-18T15:16:01.887334Z info pickfirstBalancer: HandleSubConnStateChange: 0xc420751a80, CONNECTING
...
2019-07-18T15:16:21.887741Z info pickfirstBalancer: HandleSubConnStateChange: 0xc420751a80, TRANSIENT_FAILURE
2019-07-18T15:16:21.887862Z error mcp Failed to create a new MCP sink stream: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp 10.0.25.27:9901: i/o timeout"
...
2019-07-18T15:16:44.282027Z info pickfirstBalancer: HandleSubConnStateChange: 0xc420751a80, CONNECTING
2019-07-18T15:16:44.287281Z info pickfirstBalancer: HandleSubConnStateChange: 0xc420751a80, READY
2019-07-18T15:16:44.888794Z info mcp (re)trying to establish new MCP sink stream
2019-07-18T15:16:44.888922Z info mcp New MCP sink stream created
Таким образом, короче говоря, для контейнера микшера в обоих случаях (телеметрия и политика) требуется около 44 секунд.установить все соединения.
Если вы измените значение initialDelaySeconds:
на 60 секунд в обоих развертываниях, стручки не должны перезапускаться из-за датчика живучести.
Надеюсь, это поможет