哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何快速查看Kubernetes Pod崩潰前的日志

馬哥Linux運維 ? 來源:csdn ? 2023-07-06 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當(dāng)pod處于crash狀態(tài)的時候,容器不斷重啟,此時用kubelet logs可能出現(xiàn)一直捕捉不到日志。解決方法:

kubectl previous參數(shù)作用:If true, print the logs for the previous instance of the container in a pod if it exists.

單容器pod:

kubectllogspod-name--previous

多容器pod:

kubectllogspod-name--previous-ccontainer-name

比如:

NAMEREADYSTATUSRESTARTSAGE
nginx-7d8b49557c-c2lx92/2Running5

kubectllogsnginx-7d8b49557c-c2lx9--previous
Error:xxxxxxxxxxx

kubelet會保持pod的前幾個失敗的容器,這個是查看的前提條件。kubelet實現(xiàn)previous的原理:將pod的日志存放在/var/log/pods/podname,并且是鏈接文件,鏈接到docker的容器的日志文件,同時kubelet還會保留上一個容器,同時有一個鏈接文件鏈接到pod上一個崩潰的容器的日志文件,使用previous就是查看的這個文件

比如查看一個pod:

ubuntu@~$kubeletgetpod
NAMEREADYSTATUSRESTARTSAGE
busybox1/1Running239499d
nginx-deployment-6wlhd1/1Running079d
redis1/1Running049d

到pod所在node查看kubelet放的兩個日志文件:

ls/var/log/pods/default_busybox_f72ab71a-5b3b-4ecf-940d-28a5c3b30683/busybox
2393.log2394.log

數(shù)字的含義:2393證明是第 2393 次重啟后的日志,2394代表是第2394次重啟后的日志。

實際這兩個日志文件是鏈接文件,指向了docker的日志文件:

/busybox#stat2393.log
File:2393.log->/data/kubernetes/docker/containers/68a5b32c9fdb1ad011b32e6252f9cdb759f69d7850e6b7b8591cb4c2bf00bcca/68a5b32c9fdb1ad011b32e6252f9cdb759f69d7850e6b7b8591cb4c2bf00bcca-json.log
Size:173Blocks:8IOBlock:4096symboliclink
Device:fc02h/64514dInode:529958Links:1
Access:(0777/lrwxrwxrwx)Uid:(0/root)Gid:(0/root)
Access:2023-01-311303.751514283+0800
Modify:2023-01-311303.039526838+0800
Change:2023-01-311303.039526838+0800
Birth:-

/busybox#stat2394.log
File:2394.log->/data/kubernetes/docker/containers/2ed9ebf0585215602874b076783e12191dbb010116038b8eb4646273ebfe195c/2ed9ebf0585215602874b076783e12191dbb010116038b8eb4646273ebfe195c-json.log
Size:173Blocks:8IOBlock:4096symboliclink
Device:fc02h/64514dInode:529955Links:1
Access:(0777/lrwxrwxrwx)Uid:(0/root)Gid:(0/root)
Access:2023-01-311403.991106950+0800
Modify:2023-01-311403.183119308+0800
Change:2023-01-311403.183119308+0800
Birth:-

看到分別指向了這兩個容器的日志文件,一個是當(dāng)前pod里在跑的容器,一個是pod上次跑的容器,現(xiàn)在已經(jīng)退出了

dockerps-a
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
2ed9ebf05852ff4a8eb070e1"sleep3600"24minutesagoUp24minutesk8s_busybox_busybox_default_f72ab71a-5b3b-4ecf-940d-28a5c3b30683_2394
68a5b32c9fdbff4a8eb070e1"sleep3600"AboutanhouragoExited(0)24minutesagok8s_busybox_busybox_default_f72ab71a-5b3b-4ecf-940d-28a5c3b30683_2393

使用logs的時候讀的是當(dāng)前容器那個文件,使用–previous的時候,讀的是上次退出的容器的日志文件,由于kubelet為pod保留了上次退出的容器。

我們手動編輯這兩個文件的內(nèi)容,看kubelet是否讀的是這兩個文件

/busybox#cat2393.log
{"log":"lastcrashlogs
","stream":"stderr","time":"2022-11-05T0827.31523845Z"}

/busybox#cat2394.log
{"log":"nowpodlog
","stream":"stderr","time":"2022-11-05T0827.31523845Z"}

ubuntu@10-234-32-51:~$klogsbusybox--previous
lastcrashlogs
ubuntu@10-234-32-51:~$klogsbusybox
nowpodlog

由于是鏈接文件,那么可能實際是從別的地方讀的,或者說直接讀容器目錄下的,由于鏈接文件我們改了后容器目錄下的日志文件也跟著改了,我們直接創(chuàng)建兩個文件來做驗證:

ubuntu@10-234-32-51:~$kgetpod
NAMEREADYSTATUSRESTARTSAGE
busybox1/1Running239599d
nginx-deployment-6wlhd1/1Running079d
redis1/1Running049d

/busybox#ls
2394.log2395.log

/busybox#rm2394.log2395.log

我們刪除,然后自己創(chuàng)建,這時是regular file,而不是鏈接文件了:
/busybox#ls
2394.log2395.log

/busybox#stat2394.log
File:2394.log
Size:100Blocks:8IOBlock:4096regularfile
Device:fc02h/64514dInode:529965Links:1
Access:(0640/-rw-r-----)Uid:(0/root)Gid:(0/root)
Access:2023-01-311511.307170422+0800
Modify:2023-01-311507.711225229+0800
Change:2023-01-311507.711225229+0800
Birth:-

/busybox#stat2395.log
File:2395.log
Size:86Blocks:8IOBlock:4096regularfile
Device:fc02h/64514dInode:529967Links:1
Access:(0640/-rw-r-----)Uid:(0/root)Gid:(0/root)
Access:2023-01-311517.539989934+0800
Modify:2023-01-311514.348038586+0800
Change:2023-01-311514.352038525+0800
Birth:-

/busybox#cat2394.log
{"log":"previouslogscreatebymyself
","stream":"stderr","time":"2022-11-05T0827.31523845Z"}
/busybox#cat2395.log
{"log":"createbymyself
","stream":"stderr","time":"2022-11-05T0827.31523845Z"}

ubuntu@10-234-32-51:~$klogsbusybox
createbymyself
ubuntu@10-234-32-51:~$klogsbusybox--previous
previouslogscreatebymyself

得出結(jié)論:kubelet讀的是/var/log/pods/下的日志文件,–previous讀的也是/var/log/pods/下的日志文件,且專門有個鏈接文件來指向上一個退出容器的日志文件,以此來獲取容器崩潰前的日志。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • POD
    POD
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    6302

原文標(biāo)題:如何快速查看 Kubernetes Pod 崩潰前的日志

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    阿里云容器Kubernetes監(jiān)控(二) - 使用Grafana展現(xiàn)Pod監(jiān)控數(shù)據(jù)

    kubernetes中承擔(dān)的責(zé)任遠(yuǎn)不止監(jiān)控數(shù)據(jù)的采集,還包括控制臺的監(jiān)控接口、HPA的POD彈性伸縮等都依賴于Heapster的功能。簡介在kubernetes的監(jiān)控方案中
    發(fā)表于 05-10 15:28

    再次升級!阿里云Kubernetes日志解決方案

    服務(wù)器,獲取新的或已更新的配置并進(jìn)行熱加載。Logtail根據(jù)配置信息采集各個容器(POD)上的標(biāo)準(zhǔn)輸出或日志文件。最終Logtail將處理、聚合好的數(shù)據(jù)發(fā)送到日志服務(wù)。部署方法阿里云Kube
    發(fā)表于 05-28 19:08

    從零開始入門 K8s| 詳解 Pod 及容器設(shè)計模式

    一、為什么需要 Pod容器的基本概念我們知道 PodKubernetes 項目里面一個非常重要的概念,也是非常重要的一個原子調(diào)度單位,但是為什么我們會需要這樣一個概念呢?在使用容器
    發(fā)表于 09-20 15:12

    崩潰日志快速解析方法

    iOS快速解析崩潰日志
    發(fā)表于 10-09 14:13

    Kubernetes平臺中的日志收集方案

    十、Kubernetes平臺中日志收集
    發(fā)表于 11-04 09:19

    如何多點出發(fā)快速查看網(wǎng)絡(luò)狀態(tài)

    如何多點出發(fā)快速查看網(wǎng)絡(luò)狀態(tài)     無論什么類型的網(wǎng)絡(luò),運行時間長了,總有發(fā)生故障的時候;遇到網(wǎng)絡(luò)故障時,想辦法在最短時間內(nèi)將
    發(fā)表于 04-14 14:02 ?2562次閱讀

    【工程師小貼士總匯】快速查看每個工程師都會碰上的困難

    【工程師小貼士總匯】快速查看每個工程師都會碰上的困難
    的頭像 發(fā)表于 07-12 16:17 ?3235次閱讀

    Kubernetes中的Pod簡易理解

    PodKubernetes中非常重要的概念,也是Kubernetes管理的基本單位。正如其名,Pod像一個豌豆莢,可以容納多個container,擁有相同的IP地址。
    的頭像 發(fā)表于 02-15 10:44 ?2211次閱讀

    Kubernetes Pod如何獨立工作

    在學(xué)習(xí) Kubernetes 網(wǎng)絡(luò)模型的過程中,了解各種網(wǎng)絡(luò)組件的作用以及如何交互非常重要。本文就介紹了各種網(wǎng)絡(luò)組件在 Kubernetes 集群中是如何交互的,以及如何幫助每個 Pod 都能獲取 IP 地址。
    的頭像 發(fā)表于 05-16 14:29 ?1288次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獨立工作

    Kubernetes Pod如何獲取IP地址呢?

    Kubernetes 網(wǎng)絡(luò)模型的核心要求之一是每個 Pod 都擁有自己的 IP 地址并可以使用該 IP 地址進(jìn)行通信。很多人剛開始使用 Kubernetes 時,還不清楚如何為每個 Pod
    的頭像 發(fā)表于 07-21 10:00 ?1604次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獲取IP地址呢?

    Kubernetes Pod常用管理命令詳解

    Kubernetes Pod常用管理命令詳解
    的頭像 發(fā)表于 02-17 14:06 ?1650次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>常用管理命令詳解

    詳解Kubernetes中的Pod調(diào)度親和性

    Kubernetes(K8s)中,Pod 調(diào)度親和性(Affinity) 是一種高級調(diào)度策略,用于控制 Pod 與節(jié)點(Node)或其他 Pod 之間的關(guān)聯(lián)(親和)或反關(guān)聯(lián)(反親和
    的頭像 發(fā)表于 06-07 13:56 ?1092次閱讀

    Kubernetes Pod調(diào)度策略原理與落地指南

    Pod調(diào)度是Kubernetes的核心機(jī)制之一,決定了Pod最終運行在哪個節(jié)點上。默認(rèn)調(diào)度器kube-scheduler通過一系列預(yù)選(Filtering)和優(yōu)選(Scoring)算法完成調(diào)度決策,但默認(rèn)行為在生產(chǎn)環(huán)境中往往不夠
    的頭像 發(fā)表于 02-27 11:08 ?302次閱讀

    Kubernetes Pod啟動失敗的各種場景及其排障方法

    Kubernetes 日常運維中,Pod 起不來是最常見的故障形態(tài)之一。很多運維工程師看到 Pod 狀態(tài)不是 Running 時,第一反應(yīng)是盯著 kubectl get pod
    的頭像 發(fā)表于 04-13 13:53 ?97次閱讀

    Kubernetes環(huán)境下容器日志的正確查看方式

    在容器化環(huán)境中,日志收集和查看是運維工程師日常工作中最頻繁的操作之一。很多運維工程師習(xí)慣性地進(jìn)入容器內(nèi)部使用 tail -f 命令查看日志,這種方式在小規(guī)模環(huán)境下勉強(qiáng)可用,但當(dāng)容器數(shù)量
    的頭像 發(fā)表于 04-21 11:41 ?161次閱讀
    麻栗坡县| 绥滨县| 茶陵县| 上蔡县| 泸州市| 陇川县| 高要市| 始兴县| 焦作市| 南召县| 承德县| 二手房| 格尔木市| 山西省| 木里| 麻阳| 嘉黎县| 孟州市| 旅游| 建始县| 峨山| 吴忠市| 广丰县| 突泉县| 广平县| 泾川县| 永川市| 德清县| 苗栗县| 河源市| 泰州市| 玛纳斯县| 平邑县| 衡水市| 渝中区| 合山市| 舒城县| 吐鲁番市| 海林市| 东乌| 桦川县|