Назад | Перейти на главную страницу

Что происходит, если модуль не проходит проверку работоспособности?

Я отслеживал неизвестную проблему тайм-аута в нашем кластере и нашел кое-что интересное.

В настоящее время у нас есть 30 модулей для обслуживания. Когда я бегу kubectl get event Эти 30 капсул не готовы к работе. У всех у них "LASTSEEN" меньше 10 минут, и они продолжают терпеть неудачу.

Тем не менее, я все еще могу без проблем получить доступ к сервису.

Я думал, что Кубе удаляет те модули, к которым не удалось получить доступ.

Почему я все еще могу получить доступ к услуге? Я дважды проверял, что каждый из них все еще выходит из строя каждые 10 минут или около того.

Отвечаю первым на ваш главный вопрос в заголовке.

Цитируя официального документация по концепции зонда готовности

Модуль с контейнерами, сообщающими о том, что они не готовы, не получает трафик через Kubernetes Services.

или после Сообщение блога, который очень хорошо объясняет основные различия между зондами живучести и готовности

Когда зонды готовности терпят неудачу, Kubernetes не будет отправлять трафик на под, пока зонд не будет успешным.

Теперь о причине, по которой вы все еще можете получить доступ к своему сервису. Я предполагаю, что у вас есть объект развертывания, который контролирует жизненный цикл экземпляров вашего приложения. Обратите внимание, что при обновлении развертывания старые реплики также останутся запущенными до тех пор, пока зонды не будут успешными на новой реплике. Это означает, что если ваши новые модули каким-либо образом сломаются, они никогда не увидят трафик, ваши старые модули будут продолжать обслуживать весь трафик для развертывания.