K8S deployment 重啟的三種方法

牧之丨發表於2024-06-15

一般重啟deployment,常規操作是刪掉對應的pod, 但如果有多個副本集的話,一個個刪很麻煩。
除了刪除pod,還可以:

方案一: 加上環境變數
kubectl patch deploy <deployment-name>
-p '{"spec":{"template":{"spec":{"containers":[{"name":"<container-name>","env":[{"name":"RESTART_TIME","value":"'$(date +%s)'"}]}]}}}}'
方案二: 重新設定映象
kubectl set image deploy/<deployment-name> <container>=<image> -n <namespace>
方案三: 使用rollout
kubectl rollout restart deploy <deployment-name> -n <namespace>
PS: rollout restart需要叢集版本大於1.15才能支援
以上重啟方法均會生成Replicasets(副本集), 可通進行回滾:

# 檢視歷史版本
kubectl rollout histoty deployment/<deployment-name -n <namespace>
# 進行回滾,預設回退到上個版本
kubectl rollout undo deployment/<deployment-name> -n <namespace> [--to-revision=<version>]
文章知識點與官方知識檔案匹配,可進一步學習相關知識
雲原生入門技能樹容器編排(生產
# 檢視歷史版本
kubectl rollout histoty deployment/<deployment-name -n <namespace>

# 進行回滾,預設回退到上個版本
kubectl rollout undo deployment/<deployment-name> -n <namespace> [--to-revision=<version>]

相關文章