簡體   English   中英

Pod 怎樣才能有狀態就緒和終止?

[英]How can a pod have status ready and terminating?

奇怪的是,當我運行kubectl get pods時,我看到我已經准備好 1/1 狀態和terminating狀態的 pod。 這些狀態不是相互排斥的嗎? 為什么或者為什么不?

就上下文而言,這是在我殺死skaffold后立即注意到的,因此這些 pod 正在關閉中。

在此處輸入圖像描述

當 pod 處於終止狀態時,它們仍然可以運行。 由於多種原因,pod 可能會延遲終止(例如,可能是您連接了 PVC,其他 pod 同時被終止等)。 您可以通過在連接有 PVC 或其他延遲終止原因的 pod 上運行以下命令來對此進行測試:

$ kubectl delete pod mypod-xxxxx-xxxxxx
pod mypod-xxxxx-xxxxxx deleted

$ kubectl delete pod mypod-xxxxx-xxxxxx
pod mypod-xxxxx-xxxxxx deleted

$ kubectl apply mypod.yaml
pod mypod-xxxxx-xxxxxx configured

有時會發生這種情況是因為 pod 仍處於終止期並且正常運行,因此它將被視為已配置的現有 pod(忽略通常不能這樣配置 pod 的事實,但您明白了) .

就緒列表示有多少容器已啟動。

狀態終止意味着控制器不再向該 pod 發送流量。 來自kubernetes 的文檔

當用戶請求刪除 Pod 時,系統會記錄允許強制殺死 Pod 之前的預期寬限期,並向每個容器中的主進程發送 TERM 信號。 一旦寬限期到期,KILL 信號將發送到這些進程,然后從 API 服務器中刪除 pod。

這就是它的狀態。 容器啟動,完成處理它已經完成的任何工作,並發送了一個 TERM 信號。

我想更新@nrxr 的回答:

狀態終止意味着控制器不再向該 pod 發送流量。

這就是我們想要的,但實際上並不總是這樣。 Pod 可能會完全終止,但流量仍會轉發給它。
有關詳細信息,請閱讀此博客: https ://learnk8s.io/graceful-shutdown。

暫無
暫無

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

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