kubectl apply vs kubectl edit


畫了一個圖來描述一個問題:某個deployment一直都是通過模板生成yaml並通過kubectl apply到集群,如果現在直接在集群上通過通過kubectl edit增加一段apply的模板中沒有的配置項,下次通過模板繼續apply更新,kubectl edit增加的部分會被置空嗎?
答案是並不會。因為kubectl apply計算最終patch的數據時,需要刪減的部分是通過:集群中當前資源的last-apply-anno和要apply的資源比較得到的。類似oam實現kubevela等,也是在deployment上維護oam-last-apply,所以道理都是一樣的,需要注意的是從kubectl apply遷移到oam,兩者維護的last-apply-anno不一致導致的問題。
 
 
如果經常因為patch失敗(client-go/kubectl patch),但是kubectl apply卻沒問題,那就需要去了解一下kubectl apply的實現邏輯,看看這個吧: kubectl apply源碼分析
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM