Каково состояние стручков, если проверка работоспособности не соответствует successThreshold и failThreshold, ни - PullRequest
1 голос
/ 10 января 2020

Из документа K8S о Сконфигурируйте жизнеспособность, датчики готовности , предположите, что значения successThreshold и failureThreshold немного велики, и датчики не могут встретить планку successThreshold и failureThreshold в то же время, когда бобы запускаются в самом начале, какой статус у них должен быть?

1 Ответ

0 голосов
/ 10 января 2020

Я полагаю, вы не полностью понимаете датчик готовности и живучести.

Датчик готовности

Датчики готовности разработаны, чтобы сообщить Kubernetes, когда ваше приложение готов служить траффи c. Kubernetes проверяет, прошел ли тест готовности, прежде чем служба отправит трафик c в модуль. Если проверка готовности начинает отказывать, Kubernetes прекращает посылать трафик c в модуль, пока он не пройдет.

Также согласно официальным Kubernetes документация .

В случае сбоя проверки готовности контроллер конечных точек удаляет IP-адрес модуля из конечных точек всех служб, соответствующих модулю. Состояние готовности по умолчанию до начальной задержки - Отказ. Если контейнер не обеспечивает проверку готовности, по умолчанию используется состояние «Успех».

Например, если вашему приложению требуется около 15 секунд, так как оно будет работать правильно, необходимо загрузить огромное количество данных, которые вы можете установить readinessProbe. Это полезно, когда вы масштабируете свое развертывание или вам нужно время, прежде чем Pod получит данные.

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

Датчик жизнеспособности

Датчики живучести сообщают Kubernetes, живо ли ваше приложение или нет. Если ваше приложение живо, то Kubernetes оставляет его в покое. Если ваше приложение мертво, Kubernetes удаляет модуль Pod и запускает новый для его замены.

Короче говоря, когда ваше приложение работает, Kubernetes проверяет периоды времени, когда он может получить доступ к некоторым общим ресурсам, если да, это возвращает успех. Если нет, он считает его неудачным и пытается снова, пока зонд не достигнет failureThreshold. После достижения этого значения pod будет перезапущен.

===

На основе документа docs .

readinessProbe, когда он будет успешным:

readiness-exec   0/1   Pending   0     0s
readiness-exec   0/1   Pending   0     0s
readiness-exec   0/1   ContainerCreating   0     0s
readiness-exec   0/1   Running   0     8s
readiness-exec   1/1   Running   0     15s
readiness-exec   0/1   Completed   0     98s

readinessProbe при сбое:

readiness-exec   0/1   Pending   0     0s
readiness-exec   0/1   Pending   0     0s
readiness-exec   0/1   ContainerCreating   0     0s
readiness-exec   0/1   Running   0     3s
readiness-exec   0/1   Completed   0     92s

Он не создаст модуль, так как readinessProbe не удалось. В описании модуля:

Warning  Unhealthy  2s (x12 over 57s)  kubelet, gke-default-pool-bc1968b0-1sh7  Readiness probe failed: cat: /tmp/healthyyyyy: No such file or directory

Относительно livenessProbe при достижении failureThreshold контейнер будет делать то, что было установлено в RestartPolicy .

Поскольку информация, генерируемая зондами, хранится в kubelet вы можете описать модуль для проверки текущего состояния. Если вы хотите получить более подробную информацию, вы должны использовать $ journalctl -u kubelet, как в , в этом случае .

. В Интернете вы можете найти много статей об этом. Например, статья в Google или статья в openshift .

Проверьте эту документацию с информацией при использовании зондов.

Если это не ответил, пожалуйста, отредактируйте ваш вопрос.

...