Воссоздать развертывание без перерыва в обслуживании - PullRequest
0 голосов
/ 20 января 2019

В следующем сценарии создания нового развертывания:

kubectl apply -f deployment.yaml

/Mugen$ kubectl get deploy
NAME        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
my-server   1         1         1            1           1h

Я меняю yaml и снова запускаю apply и получаю сообщениечто развертывание было обновлено.

Но затем я вижу два модуля для моего развертывания и указание, что есть два экземпляра, в то время как только один обновлен.

/Mugen$ kubectl get deploy
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
mysql-server   1         2         1            2           1h

Из моего понимания, если бы я использовал kubectl replace --force, я бы практически удалил текущее развертывание и создал бы новое.

Однако это приведет к сбою службы.

Существует ли правильный способ созданияновое развертывание и удалить предыдущее только после успешного развертывания?

1 Ответ

0 голосов
/ 20 января 2019

Изящно истощите все модули (а затем удалите модули) и продолжайте добавлять новые модули с новыми функциями.

Обратите внимание, что в производственных настройках пересоздание в качестве стратегии развертывания не рекомендуется, так как это может привести к отключениям и обслуживаниюотключения.В качестве альтернативы вы можете также прочитать больше о различных стратегиях развертывания, таких как Canary Release (также читайте о Blue / Green) и / или RollingUpdate для управления производством.

...