簡體   English   中英

如何在不修改副本的情況下升級 Helm 中的部署?

[英]How to upgrade a Deployment in Helm without modifying replicas?

在 Helm 圖表中一起創建DeploymentHorizontalPodAutoscaler時,部署的.spec.replicas應該設置為null ,或者應該取消設置,還是應該設置為 hpa 的minReplicasmaxReplicas之間的某個值?

創建 hpa 時,hpa 控制器管理部署的.spec.replicas ,因此當您更新部署的其他字段時,不應更改副本。

kubectl apply declarative config 相比,如果您在第一次創建部署時.spec.replicas設置.spec.replicas則可以在不修改.spec.replicas情況下修改部署的其他字段,以便 3-way diff 在部署時忽略該字段將來會應用。 或者要在創建時間后省略該字段,您必須使用kubectl apply edit-last-applied以避免在刪除該字段時意外縮小到 1 ( kubernetes/kubernetes#67135 )。 因此,使用kubectl apply可以在不接觸.spec.replicas情況下應用部署。

在不改變其縮放比例的情況下, helm upgrade部署的其他字段的正確方法是什么?

在這里檢查,如果我理解正確,有兩種方法可以做到這一點。

1.添加 if 語句作為解決方法。

@naseemkullah 添加了有關它的評論。

所以解決方法是在部署的 spec.replicas 周圍添加一個 if 語句,如果啟用了 HPA,則不對其進行模板化


2.完全刪除replicas字段,那么它應該尊重HPA管理的replicas數量。

@tianchengli 添加了有關它的評論

如果我完全刪除副本字段,它將尊重由 HPA 管理的副本數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM