問題描述
我的deployment有單個pod,我的自定義docker鏡像如下:
| |
在開發過程中,我想推送新的最新版本并更新Deployment。無法明确定義tag/version并為每個建構增加它,并且無法找到如何做到這一點:
| |
高票回答
您可以使用grace period(例如30秒或更長時間,根據容器啟動時間和鏡像大小)配置您的pod,并設定“imagePullPolicy:”Always“。并使用kubectl delete pod pod_name。将建立一個新容器并且最新鏡像自動下載下傳,然後舊容器終止。
例子:
| |
我目前正在使用Jenkins進行自動建構和打鏡像标簽,它看起來像這樣:
| |
另一個技巧是最初運作:
| |
然後:
| |
它實際上會觸發滾動更新,但請確定您還有imagePullPolicy:“Always”設定。
我發現的另一個技巧是,您不必更改鏡像名稱,更改将觸發滾動更新的字段的值,例如terminationGracePeriodSeconds。您可以使用kubectl編輯部署your_deployment或kubectl apply -f your_deployment.yaml或使用如下更新檔:
| |
隻需確定始終更改數值。
原文連結
Kubernetes how to make Deployment to update image