Запрос масштабирования контроллера репликации Kubernetes - PullRequest
0 голосов
/ 17 мая 2018

Мне было интересно, какая стратегия завершения используется контроллером репликации во время масштабирующих запросов.

Например:

Начальные реплики = 2

Создано 2 модуля {Pod-1, Pod-2}

Уменьшено до 5

Будет создано еще 3 модуля {Pod-1,Pod-2, Pod-3, Pod-4, Pod-5}

Снова уменьшите до 2

3. Стручки будут удалены, и у нас останетсятолько 2 модуля {Pod-x, Pod-y}

Теперь, будет ли контроллер репликации завершать работу и удалять модули в соответствии с их возрастом?или это зависит от того, занят ли контейнер внутри контейнера?или это случайный порядок?

Я протестировал этот сценарий пару раз и обнаружил, что стручки завершаются случайным образом.Может ли кто-нибудь подтвердить то же самое?И есть ли способ контролировать последовательность завершения?

Заранее спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

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

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

...