Сбой MountVolume.SetUp для тома «policy-adapter-secret»: не удалось распространить кэш объекта: истекло время ожидания условия - PullRequest
0 голосов
/ 05 июля 2019

Создан кластер из двух узлов с kubeadm.

Установлено istio 1.1.11

версия kubectl

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

Выполнены команды, указанные в документации istio

$ for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done

$ kubectl apply -f install/kubernetes/istio-demo.yaml

Услуги созданы.

$ kubectl get pods -n istio-system

Телеметрия и политикастатус модуля изменился на CrashLoopBackOff

istio-policy-648b5f5bb5-dv5np                 1/2        **CrashLoopBackOff**      5          2m52s

istio-telemetry-57946b8569-9m7gd           1/2     **CrashLoopBackOff**   5          2m52s

При описании модуля было получено следующее сообщение об ошибке:

 Warning  FailedMount  2m16s (x2 over 2m18s)  kubelet, ip-xxx-xxx-xxx-xxx  MountVolume.SetUp failed for volume "policy-adapter-secret" : couldn't propagate object cache: timed out waiting for the condition

Попытался перезапустить виртуальную машину, перезапустить службу Docker.Это не помогло.

Из-за вышеуказанной ошибки модуль несколько раз пытается перезапустить и затем аварийно завершить работу.

Нужна ваша помощь в решении этой проблемы

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

В сети вы можете найти много вопросов, связанных с 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 секунд в обоих развертываниях, стручки не должны перезапускаться из-за датчика живучести.

Надеюсь, это поможет

0 голосов
/ 07 июля 2019

Эти службы микшера могут вызывать сбои, если вашим узлам не хватает памяти для запуска Istio. Все больше и больше люди используют такие инструменты, как Meshery , чтобы установить Istio (и другие сервисные сетки), потому что это будет выдвигать на первый план такие спорные моменты, как память. При развертывании профилей конфигурации istio-demo или istio-demo-auth вы должны убедиться, что у вас есть минимум 4 ГБ ОЗУ на узел (особенно, если плоскость управления Istio развернута только на одном узле) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...