Обновление нод группы с противоречивыми настройками масштабирования и развёртывания. Эксперимент
Иногда для нод группы задают противоречивые настройки в секциях Масштабирование и Развёртывание в автомасштабируемой группе. Как будет проходить процесс обновления в такой группе?
Приведу пример настроек противоречащих друг другу.
scale_policy: auto_scale: min_size: "2" max_size: "3" initial_size: "2" deploy_policy: max_unavailable: "1" max_expansion: "2"
При создании нод группы создалось две ноды, максимальное количество нод может быть три. Но при этом настройка max_expansion = 2, что предполагает, что нод может быть четыре. Как поведёт себя k8s при обновлении нод группы в данной ситуации?
При обновлении создаётся только одна нода. Таким образом у настройки max_size приоритет перед настройкой max_expansion.
Рассмотрим ещё один пример. Здесь создаётся нод группа с одними характеристиками, потом у неё они меняются. Как поведёт себя обновление в этой ситуации?
Изначально у нод группы были следующие настройки:
scale_policy: auto_scale: min_size: "1" max_size: "3" initial_size: "1" deploy_policy: max_unavailable: "1" max_expansion: "2"
scale_policy: auto_scale: min_size: "2" max_size: "3" initial_size: "2" deploy_policy: max_unavailable: "1" max_expansion: "2"
Если на нодах нет нагрузки, то автоматически она не поскейлится. Для скейла нод, необходимо подать нагрузку. Например, создав деплоймент с большим количеством реплик.
Если оставить одну ноду, то при обновлении ревизии новая нода может не добавиться, а начнёт обновляться текущая, что может привести к потере связи с сервисами.