1. ホーム
  2. kubernetes

[解決済み] kubernetesのdeployment yamlを変更せずにPodをローリング再起動する方法は?

2022-03-02 04:54:20

質問

kubernetesにはローリングアップデート(ダウンタイムなしの自動更新)がありますが、少なくとも私はローリングリスタートを見つけられませんでした。デプロイメントYAMLを変更する必要があります。できればデプロイメントYAMLを変更せずに、ローリング"restart"を行う方法はありますか?

解決方法は?

kubernetes 1.15以前では、答えは「いいえ」です。しかし、ダミーのアノテーションでデプロイメントスペックをパッチすることで回避することができます。

kubectl patch deployment web -p \
  "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"

kubernetes 1.15時点では使用可能です。

kubectl rollout restart deployment your_deployment_name

CLIの改善点

  • 新規に作成された kubectl rollout restart コマンドを使用して、デプロイメントのローリング再起動を実行します。
  • kubectl rollout restart DaemonSet と StatefulSet で動作するようになりました。