簡體   English   中英

kubectl rollout status 不等待部署完成和 pod 運行

[英]kubectl rollout status does not wait for deployment to complete and pod to run

我們使用kubectl部署新鏡像(見下文),偶爾會看到kubectly rollout status命令完成,即使新 pod 沒有啟動。

正如您在下面看到的那樣,kubectl 甚至承認並記錄“1 個新副本中的 0 個已更新”並繼續進行。

這是一個錯誤嗎?

我們沒有任何活性/就緒探針配置。 也許 kubectl 沒有等待足夠長的時間來查看進程是否健康? 我們的 NodeJS 應用程序在第 3 行(很早之前的require()語句)和任何長時間運行的代碼運行之前崩潰了。

嘗試1:

kubectl get deployment/documents
# Updating existing deployment documents:1.13.1.337660...
# Applying New Image Tag to Deployment...
kubectl set image deployment/documents documents=myrepo.com/documents:1.13.1.337660
deployment.apps/documents image updated
# Waiting for rollout to complete
kubectl rollout status deployment/documents
Waiting for deployment spec update to be observed...
Waiting for deployment spec update to be observed...
Waiting for deployment "documents" rollout to finish: 0 out of 1 new replicas have been updated...
Waiting for deployment "documents" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "documents" rollout to finish: 1 old replicas are pending termination...
deployment "documents" successfully rolled out

即使新 pod 出現故障並且沒有/無法啟動,此嘗試也會退出!

嘗試2:

kubectl get deployment/documents
# Updating existing deployment documents:1.13.1.337660...
# Applying New Image Tag to Deployment...
kubectl set image deployment/documents documents=myrepo.com/documents:1.13.1.337660
# Waiting for rollout to complete
kubectl rollout status deployment/documents
Waiting for deployment "documents" rollout to finish: 0 of 1 updated replicas are available...

這永遠不會退出 - 正確,因為 pod 無法啟動!

這不是錯誤。 kubectl rollout status將永遠等待,除非您傳遞--timeout=X其中 X 是一個數字和單位,表示您希望它等待多長時間,例如1m5m10m

即使這樣,超時也不會回滾錯誤的更新,您需要檢測失敗(例如通過使用$? )並執行kubectl rollout undo

暫無
暫無

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

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