K8s任務 確定 Pod 失敗的原因

2022-09-07 12:15:07 字數 1129 閱讀 2866

顯示 pod 的詳細資訊:

kubectl get pod --output=yaml
輸出結果包含 "sleep expired" 訊息:

apiversion: v1

kind: pod

... laststate:

terminated:

containerid: ...

exitcode: 0

finishedat: ...

message: |

sleep expired

...

使用 go 模板過濾輸出結果,使其只含有終止訊息:

kubectl get pod termination-demo -o go-template="}}}"
kubernetes 從容器的 terminationmessagepath 欄位中指定的終止訊息檔案中檢索終止訊息, 預設值為 /dev/termination-log。 通過定製這個字段,您可以告訴 kubernetes 使用不同的檔案。 kubernetes 使用指定檔案中的內容在成功和失敗時填充容器的狀態訊息。

在下例中,容器將終止訊息寫入 /tmp/my-log 給 kubernetes 來接收:

apiversion: v1

kind: pod

metadata:

name: msg-path-demo

spec:

containers:

- name: msg-path-demo-container

image: debian

terminationmessagepath: "/tmp/my-log"

此外,使用者可以設定容器的 terminationmessagepolicy 字段,以便進一步自定義。 此欄位預設為 "file",這意味著僅從終止訊息檔案中檢索終止訊息。 通過將 terminationmessagepolicy 設定為 "fallbacktologsonerror",你就可以告訴 kubernetes,在容器因錯誤退出時,如果終止訊息檔案為空,則使用容器日誌輸出的最後一塊作為終止訊息。 日誌輸出限制為 2048 位元組或 80 行,以較小者為準。

k8s集群建立pod,執行pod

k8s集群搭建好後,各個node的狀態變成了ready,就可以建立pod,建立完成後,就會預設的執行其中的container。使用乙個簡單yaml檔案描述pod apiversion v1 必選,版本號,例如v1,版本號必須可以用 kubectl api versions 查詢到 kind pod ...

k8s安裝kubesphere失敗原因和解決方法

提示資訊 fatal localhost failed 原因 helm的版本不匹配導致的。我當前安裝的版本是v2.17.0,我重新安裝的版本是v2.16.6。重新安裝的步驟 1.刪除舊的helm,直接執行helm reset。2.刪除 usr local bin helm,命令 rm rf usr ...

k8s檢視pod的命令

引數解析 name pod名 ready 準備好的副本數 status 狀態 restarts 重啟 age 已經執行的時間 kubectl get pod o wide 引數解析 ip ip位址 node 執行節點 nominated node 指定節點 kubectl describe pod ...