Это ожидаемое поведение при использовании стратегии RollingUpdate
. Он удаляет старые модули один за другим, одновременно добавляя новые, сохраняя доступность приложения на протяжении всего процесса и гарантируя, что его способность обрабатывать запросы не упадет. Поскольку у вас только один модуль, Kubernetes масштабирует развертывание, чтобы сохранить стратегию и zero-downtime
в соответствии с запросом в манифесте.
Он масштабируется до 2, потому что, если не указано иное, maxSurge
по умолчанию составляет 25%. Это означает, что во время обновления может быть не более 25% экземпляров подов, чем желаемое количество.
Если вы хотите гарантировать, что это не будет масштабироваться, вы можете изменить стратегию на Recreate
. Это приведет к удалению всех старых модулей до создания новых. Используйте эту стратегию, если ваше приложение не поддерживает параллельное выполнение нескольких версий и требует полной остановки старой версии перед запуском новой. Однако учтите, что эта стратегия действительно предполагает короткий период времени, когда ваше приложение становится полностью недоступным.
Вот хороший документ , который описывает стратегию последовательного обновления. Также стоит проверить официальную документацию kubernetes о развертываниях.