A Kubernetes Контроллер репликации гарантирует, что указанное количество «реплик» модуля выполняется в любой момент времени. Если их будет слишком много, это убьет некоторых. Если их будет слишком мало, начнется больше. В отличие от случая, когда созданные пользователем модули, поддерживаемые ReplicationController, автоматически заменяются в случае сбоя, удаления или отмены
Существует логика в выборе капсул, которые будут убиты в процессе уменьшения масштаба.
Заработная плата, используемая для выбора убиваемого модуля, описана разработчиками:
// 1. Unassigned < assigned
// If only one of the pods is unassigned, the unassigned one is smaller
// 2. PodPending < PodUnknown < PodRunning
// 3. Not ready < ready
// 4. Been ready for empty time < less time < more time
// If both pods are ready, the latest ready one is smaller
// 5. Pods with containers with higher restart counts < lower restart counts
// 6. Empty creation time pods < newer pods < older pods
Нет параметра конфигурации, который вы можете установить, чтобы избежать уничтожения определенных модулей. Если вы хотите подробно понять, как это работает - посмотрите исходный код, прочитайте хорошую лекцию .