やりたいこと
Kubernetesにおいて以下のようなロールアウト機能を用いたデプロイではなく
全てのポッドを一気に変更したい。
環境情報
- Windows 10 Enterprise
- Docker Desktop 2.2.0
やり方
deploymentのyamlファイルに以下の文言を追記する。
strategy: type: Recreate
以下、解説です。
解説
冒頭の参考記事にあるように指定をせずにkubectl apply -f deployment.yaml
を行うとローリングアップデート(RollingUpdate)と呼ばれる順々に新しいポッドが増えていきます。
一方で旧Podを全て落として一気に新Podを上げる必要がある要件もあるかと思います。
Kubernetesには以下のように「RollingUpdate」と「Recreate」が選択できるので
RollingUpdate:(*apps.RollingUpdateDeployment)(nil)}: supported values: "Recreate", "RollingUpdate"
そのような場合はyamlファイルに以下のように記載をすることで
spec: replicas: 10 strategy: type: Recreate
新バージョンのマニフェストを適用すると
> kubectl apply -f .\nginx-deployment2.yaml deployment.apps/nginx-deployment configured > kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-5754944d6c-5bmvv 1/1 Terminating 0 84s nginx-deployment-5754944d6c-gkcht 1/1 Terminating 0 87s nginx-deployment-5754944d6c-gt9ls 1/1 Terminating 0 87s nginx-deployment-5754944d6c-jm2nq 1/1 Terminating 0 83s nginx-deployment-5754944d6c-mrmvh 1/1 Terminating 0 87s nginx-deployment-5754944d6c-nxplq 1/1 Terminating 0 82s nginx-deployment-5754944d6c-rmrh2 1/1 Terminating 0 84s nginx-deployment-5754944d6c-sfrpm 1/1 Terminating 0 87s nginx-deployment-5754944d6c-spcn8 1/1 Terminating 0 82s nginx-deployment-5754944d6c-xmpd8 1/1 Terminating 0 87s
旧Podは一気に落ちて新しいPodの起動を行う動きになります。
以上、ご参考になれば幸いです。