W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此頁顯示如何核查與 Init 容器執(zhí)行相關(guān)的問題。 下面的示例命令行將 Pod 稱為 ?<pod-name>
?,而 Init 容器稱為 ?<init-container-1>
? 和 ?<init-container-2>
?。
你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點的集群上運行本教程,且這些節(jié)點不作為控制平面主機。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:
要檢查版本,請輸入 ?kubectl version
?。
顯示你的 Pod 的狀態(tài):
kubectl get pod <pod-name>
例如,狀態(tài) ?Init:1/2
? 表明兩個 Init 容器中的一個已經(jīng)成功完成:
NAME READY STATUS RESTARTS AGE
<pod-name> 0/1 Init:1/2 0 7s
查看 Init 容器運行的更多詳情:
kubectl describe pod <pod-name>
例如,對于包含兩個 Init 容器的 Pod 可能顯示如下信息:
Init Containers:
<init-container-1>:
Container ID: ...
...
State: Terminated
Reason: Completed
Exit Code: 0
Started: ...
Finished: ...
Ready: True
Restart Count: 0
...
<init-container-2>:
Container ID: ...
...
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: ...
Finished: ...
Ready: False
Restart Count: 3
...
你還可以通過編程方式讀取 Pod Spec 上的 ?status.initContainerStatuses
? 字段,了解 Init 容器的狀態(tài):
kubectl get pod nginx --template '{{.status.initContainerStatuses}}'
此命令將返回與原始 JSON 中相同的信息.
與 Pod 名稱一起傳遞 Init 容器名稱,以訪問容器的日志。
kubectl logs <pod-name> -c <init-container-2>
運行 Shell 腳本的 Init 容器在執(zhí)行 Shell 腳本時輸出命令本身。 例如,你可以在 Bash 中通過在腳本的開頭運行 ?set -x
? 來實現(xiàn)。
以 ?Init:
? 開頭的 Pod 狀態(tài)匯總了 Init 容器執(zhí)行的狀態(tài)。 下表介紹調(diào)試 Init 容器時可能看到的一些狀態(tài)值示例。
狀態(tài) | 含義 |
---|---|
Init:N/M
|
Pod 包含 M 個 Init 容器,其中 N 個已經(jīng)運行完成。 |
Init:Error
|
Init 容器已執(zhí)行失敗。 |
Init:CrashLoopBackOff
|
Init 容器執(zhí)行總是失敗。 |
Pending
|
Pod 還沒有開始執(zhí)行 Init 容器。 |
PodInitializing or Running
|
Pod 已經(jīng)完成執(zhí)行 Init 容器。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: