K8s / Openshift - заботится ли контроллер репликации о статусе выхода пода / контейнеров?

Обязанность контроллера репликации в K8S / Openshift - гарантировать, что фактическое состояние совпадает с желаемым. Таким образом, если желаемое состояние - 2 модуля, то это гарантирует, что будут созданы / запущены ровно 2 модуля. Если модуль по какой-либо причине выходит из строя, контроллер репликации гарантирует, что он перезапустит новый модуль, чтобы компенсировать отказавший модуль.

Я хочу подтвердить, что если модуль / контейнер существует с ошибкой - тогда контроллер репликации позаботится о коде ошибки и обнаружит, что модуль не работает из-за ошибки, и, следовательно, решит больше не запускать модуль. ?? Ответьте, пожалуйста.


person joven    schedule 14.04.2021    source источник
comment
Однако в качестве комментария я хотел бы добавить - одна из целей контроллера репликации - обрабатывать ситуацию сбоя / завершения модулей, с ошибкой или без нее. И компенсируйте отказавший модуль новым независимо от причины отказа исходного модуля.   -  person joven    schedule 14.04.2021


Ответы (1)


Я хочу подтвердить, что если модуль / контейнер существует с ошибкой - тогда контроллер репликации позаботится о коде ошибки и обнаружит, что модуль не работает из-за ошибки, и, следовательно, решит больше не запускать модуль. ??

Ошибки можно отображать разными способами:

  • Код ошибки в журнале приложения
  • Код ошибки в полезных данных сообщения
  • Код ошибки в коде состояния http в ответе
  • Код завершения процесса

Только последний код выхода процесса полезен для ReplicationController (или в более новых Kubernetes, для контроллера ReplicaSet). Если процесс завершается, Pod завершается, и контроллер создает новый.

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

person Jonas    schedule 14.04.2021
comment
If the process exit, the Pod is terminated and a new will be created by the controller. - я приму это как - завершается с ошибкой или без ошибки - Контроллер репликации запускает замену модуля. - person joven; 14.04.2021
comment
Да, это правильно. Контроллер репликации заботится о желаемом состоянии - количестве запущенных реплик. - person Jonas; 14.04.2021
comment
спасибо. +1. В моем использовании меня не беспокоит проверка LivenessProbe, отказ которой означает перезапуск POD на основе политики перезапуска. Ваш ответ касается моей проблемы. - person joven; 15.04.2021