1. 程式人生 > 實用技巧 >k8s的應用回滾--record

k8s的應用回滾--record

kubectl apply 每次更新應用時 Kubernetes 都會記錄下當前的配置,儲存為一個 revision(版次),這樣就可以回滾到某個特定 revision。
預設配置下,Kubernetes 只會保留最近的幾個 revision,可以在 Deployment 配置檔案中通過 revisionHistoryLimit 屬性增加 revision 數量。
使用也很簡單,在更新的時候加上--record就可以了。
個人理解:record類似一個棧,先執行的apply會放到記錄的最下端。也就是說你的上一個版本一定是2

命令

記錄版本
kubectl apply -f xxx.yaml --record


檢視 revison
kubectl rollout history deployment $dp_name -n $namespaces
回滾
kubectl rollout undo deployment $dp_name --to-revision=1

實驗

1、如下做三個httpd的yaml,分別為httpd.v1.yml,httpd.v2.yml 和 httpd.v3.yml,分別對應不同的 httpd 映象 2.4.16,2.4.17 和 2.4.18:

2、通過 kubectl apply 更新應用

kubectl apply -f httpd.v1.yml --record
kubectl apply -f httpd.v2.yml --record
kubectl apply -f httpd.v3.yml --record

3、檢視版本

kubectl rollout history deployment httpd

4、回滾
kubectl rollout undo deployment httpd --to-revision=1