Jenkins
如何使用 Kubernetes 進行持續傳遞?
我正在嘗試將 Kubernetes 命名空間設置和應用程序部署作為管道的一部分執行。通常“應用”命令使用冪等性。現在,如果我更改 ConfigMap,則需要重新啟動 pod 才能選擇更改。但是“應用”部署沒有任何效果,因為部署本身沒有檢測到任何變化。“創建”-“刪除”組合有效,但是是額外的工作並且會破壞藍綠色部署。有中庸之道嗎?
當您更改
ConfigMap
內容而不更改其名稱時,Deployment
不會檢測到更改並且不會創建新的 pod。該問題已修復並合併,請在此處查看。但是,它發生在最近(2018 年 3 月 14 日),可能您的 Kubernetes 版本不包含該程式碼。
您可以使用以下解決方法來推送部署以重新創建更新的新 pod
ConfigMap
- 只需添加或更新 pod 的註釋。它將推送 Deployment 以創建新版本的 pod:kubectl patch deployment $DEPLOYMENT_NAME -p \ "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"