[英]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 是一個數字和單位,表示您希望它等待多長時間,例如1m
、 5m
或10m
。
即使這樣,超時也不會回滾錯誤的更新,您需要檢測失敗(例如通過使用$?
)並執行kubectl rollout undo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.