[英]Kubernetes Helm stuck with an update in progress
我嘗試在運行helm repo update
之前運行 Helm 升級,現在它似乎永久卡在“STATUS:pending-upgrade”中,並且不會讓我再次嘗試運行升級。
嘗試運行: helm upgrade --namespace coder --install --force --atomic --wait --version 1.13.2 --values./coder.yaml coder coder/coder
輸出: Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
TLDR:您需要先回滾到另一個版本,然后再次進行helm upgrade
:
helm rollback <release> <revision> --namespace <namespace>
發生這種情況可能有幾個原因,但最終會在升級/安裝過程中出現中斷時發生。 通常,您在部署進行時SIGKILL
( Ctrl C
)。
您會注意到,如果您helm ls --namespace <namespace>
而它卡在STATUS: pending-upgrade
state 中,您將看到以下內容而沒有任何其他信息:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
目前最好的解決方法是回滾到另一個版本,然后再次helm upgrade
:
helm rollback <release> <revision> --namespace <namespace>
revision
是可選的,但您應該嘗試提供它。
更多資源:
這個解決方案對我有用:
kubectl get secrets
kubectl delete secret sh.helm.release.v1.<RELEASE_NAME>.v<LATEST_REVISION>
遵循此問題中描述的解決方案
萬一對某人有用,並且響應explicitsoul的評論,對我來說固定它的只是:
helm delete <release> -n <namespace>
這刪除了掛起的安裝(在我的情況下,第一個,所以我沒有回滾到以前的版本),然后我能夠再次運行安裝。
在我的情況下導致卡住的過程是 CTRL-C 取消安裝命令,所以不要這樣做。
我也面臨同樣的情況。 我使用了 helm 3.4.1... 當部署處於掛起狀態並且您使用 --atomic(在 helm3 中也暗示 --wait)時會發生這種情況。
我無法升級工作。 最糟糕的是,即使helm -n code list
也沒有顯示任何內容,所以我不能這樣做:
helm -n code code
由於 helm3 將此類信息保存在機密中,因此只需清理相應的機密並進行安裝(或升級 --install,但沒有 --atomic)。 在你的情況下,像
helm delete --namespace code secret sh.helm.release.v1.code.v1
(最后一個 v1 是版本號,所以如果你同意的話,可以列出並刪除所有內容)。
和之后的掌舵安裝。
注意:舊對象(pod 等)將在那里,因此新安裝將嘗試合並事物。 對我來說一切正常,但請注意 -> 這是一個 HACK :)
這對我有用
helm list --all
這將列出所有版本及其狀態NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rel1 default 1 2021-06-04 14:15:37.652066 +0530 IST deployed rel1-3.32.0 0.46.0
rel2 default 29 2021-06-18 11:02:38.779801 +0530 IST pending-upgrade rel2-0.0.1
rel3 default 3 2021-06-17 11:27:14.608042 +0530 IST deployed rel3-0.0.1
helm rollback rel2 28 --namespace default
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rel1 default 1 2021-06-04 14:15:37.652066 +0530 IST deployed rel1-3.32.0 0.46.0
rel2 default 30 2021-06-18 11:26:07.555547 +0530 IST deployed rel2-0.0.1
rel3 default 3 2021-06-17 11:27:14.608042 +0530 IST deployed rel3-0.0.1
kubectl 獲取秘密 kubectl 刪除秘密 sh.helm.release.v1.<RELEASE_NAME>.v<LATEST_REVISION>
通過使用上述命令,它將在 helm upgrade 運行過程中刪除現有的秘密,並刪除卡住的 helm upgrade 並生成新的秘密以繼續進行新的升級。
這些是對我有用的步驟:
查看您的部署狀態(我一直處於掛起狀態)
helm list --all
回滾到以前的版本,對我來說已經在這里工作了,下一步可選
helm rollback <NAMESPACE_NAME> <Previous Version> --namespace <NAMESPACE_NAME>
如果您想要新的/另一個部署
helm upgrade. . .
為了回滾到以前的版本,您只需傳遞版本名稱:
helm rollback <RELEASE_NAME>
當您在NAME
列下運行helm list --all
-> 時,可以看到RELEASE_NAME
。
(*) 如果終端上下文未設置為命名空間,則添加--namespace <namespace>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.