日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes確定Pod失敗的原因

確定 Pod 失敗的原因

本文介紹如何編寫和讀取容器的終止消息。

儀隴網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),儀隴網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為儀隴超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的儀隴做網(wǎng)站的公司定做!

終止消息為容器提供了一種方法,可以將有關(guān)致命事件的信息寫入某個(gè)位置, 在該位置可以通過儀表板和監(jiān)控軟件等工具輕松檢索和顯示致命事件。 在大多數(shù)情況下,你放入終止消息中的信息也應(yīng)該寫入 常規(guī) Kubernetes 日志。

在開始之前

你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:

  • Katacoda
  • 玩轉(zhuǎn) Kubernetes

要檢查版本,請(qǐng)輸入 ?kubectl version?。

讀寫終止消息

在本練習(xí)中,你將創(chuàng)建運(yùn)行一個(gè)容器的 Pod。 配置文件指定在容器啟動(dòng)時(shí)要運(yùn)行的命令。

apiVersion: v1
kind: Pod
metadata:
  name: termination-demo
spec:
  containers:
  - name: termination-demo-container
    image: debian
    command: ["/bin/sh"]
    args: ["-c", "sleep 10 && echo Sleep expired > /dev/termination-log"]
  1. 基于 YAML 配置文件創(chuàng)建 Pod:
  2.  kubectl apply -f https://K8S.io/examples/debug/termination.yaml   
    

    YAML 文件中,在 ?command ?和 ?args ?字段,你可以看到容器休眠 10 秒然后將 "Sleep expired" 寫入 ?/dev/termination-log? 文件。 容器寫完 "Sleep expired" 消息后就終止了。

  3. 顯示 Pod 的信息:
  4.  kubectl get pod termination-demo
    

    重復(fù)前面的命令直到 Pod 不再運(yùn)行。

  5. 顯示 Pod 的詳細(xì)信息:
  6.  kubectl get pod termination-demo --output=yaml
    

    輸出結(jié)果包含 "Sleep expired" 消息:

     apiVersion: v1
     kind: Pod
     ...
         lastState:
           terminated:
             containerID: ...
             exitCode: 0
             finishedAt: ...
             message: |
               Sleep expired
             ...
  7. 使用 Go 模板過濾輸出結(jié)果,使其只含有終止消息:
  8.  kubectl get pod termination-demo -o go-template="{{range .status.containerStatuses}}{{.lastState.terminated.message}}{{end}}"
    

如果你正在運(yùn)行多容器 Pod,則可以使用 Go 模板來包含容器的名稱。這樣,你可以發(fā)現(xiàn)哪些容器出現(xiàn)故障:

kubectl get pod multi-container-pod -o go-template='{{range .status.containerStatuses}}{{printf "%s:\n%s\n\n" .name .lastState.terminated.message}}{{end}}'

定制終止消息

Kubernetes 從容器的 ?terminationMessagePath ?字段中指定的終止消息文件中檢索終止消息, 默認(rèn)值為 ?/dev/termination-log?。 通過定制這個(gè)字段,你可以告訴 Kubernetes 使用不同的文件。 Kubernetes 使用指定文件中的內(nèi)容在成功和失敗時(shí)填充容器的狀態(tài)消息。

在下例中,容器將終止消息寫入 ?/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"

此外,用戶可以設(shè)置容器的 ?terminationMessagePolicy ?字段,以便進(jìn)一步自定義。 此字段默認(rèn)為 "?File?",這意味著僅從終止消息文件中檢索終止消息。 通過將 ?terminationMessagePolicy ?設(shè)置為 "?FallbackToLogsOnError?",你就可以告訴 Kubernetes,在容器因錯(cuò)誤退出時(shí),如果終止消息文件為空,則使用容器日志輸出的最后一塊作為終止消息。 日志輸出限制為 2048 字節(jié)或 80 行,以較小者為準(zhǔn)。


網(wǎng)站題目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes確定Pod失敗的原因
瀏覽地址:http://www.5511xx.com/article/djooccp.html