新聞中心
調(diào)試 Init 容器
此頁(yè)顯示如何核查與 Init 容器執(zhí)行相關(guān)的問(wèn)題。 下面的示例命令行將 Pod 稱為 ??,而 Init 容器稱為 ?? 和 ??。

在開(kāi)始之前
你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒(méi)有集群,你可以通過(guò) Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:
- Katacoda
- 玩轉(zhuǎn) Kubernetes
要檢查版本,請(qǐng)輸入 ?kubectl version?。
- 你應(yīng)該熟悉 Init 容器的基礎(chǔ)知識(shí)。
- 你應(yīng)該已經(jīng)配置好一個(gè) Init 容器。
檢查 Init 容器的狀態(tài)
顯示你的 Pod 的狀態(tài):
kubectl get pod
例如,狀態(tài) ?Init:1/2? 表明兩個(gè) Init 容器中的一個(gè)已經(jīng)成功完成:
NAME READY STATUS RESTARTS AGE
0/1 Init:1/2 0 7s 獲取 Init 容器詳情
查看 Init 容器運(yùn)行的更多詳情:
kubectl describe pod
例如,對(duì)于包含兩個(gè) Init 容器的 Pod 可能顯示如下信息:
Init Containers:
:
Container ID: ...
...
State: Terminated
Reason: Completed
Exit Code: 0
Started: ...
Finished: ...
Ready: True
Restart Count: 0
...
:
Container ID: ...
...
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: ...
Finished: ...
Ready: False
Restart Count: 3
... 你還可以通過(guò)編程方式讀取 Pod Spec 上的 ?status.initContainerStatuses? 字段,了解 Init 容器的狀態(tài):
kubectl get pod nginx --template '{{.status.initContainerStatuses}}'
此命令將返回與原始 JSON 中相同的信息.
通過(guò) Init 容器訪問(wèn)日志
與 Pod 名稱一起傳遞 Init 容器名稱,以訪問(wèn)容器的日志。
kubectl logs -c
運(yùn)行 Shell 腳本的 Init 容器在執(zhí)行 Shell 腳本時(shí)輸出命令本身。 例如,你可以在 Bash 中通過(guò)在腳本的開(kāi)頭運(yùn)行 ?set -x? 來(lái)實(shí)現(xiàn)。
理解 Pod 的狀態(tài)
以 ?Init:? 開(kāi)頭的 Pod 狀態(tài)匯總了 Init 容器執(zhí)行的狀態(tài)。 下表介紹調(diào)試 Init 容器時(shí)可能看到的一些狀態(tài)值示例。
| 狀態(tài) | 含義 |
|---|---|
Init:N/M |
Pod 包含 M 個(gè) Init 容器,其中 N 個(gè)已經(jīng)運(yùn)行完成。 |
Init:Error |
Init 容器已執(zhí)行失敗。 |
Init:CrashLoopBackOff |
Init 容器執(zhí)行總是失敗。 |
Pending |
Pod 還沒(méi)有開(kāi)始執(zhí)行 Init 容器。 |
PodInitializing or Running |
Pod 已經(jīng)完成執(zhí)行 Init 容器。 |
分享題目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes調(diào)試Init容器
當(dāng)前URL:http://fisionsoft.com.cn/article/dhgcihj.html


咨詢
建站咨詢
