k8s的應用回滾--record
阿新 • • 發佈:2020-07-24
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