在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

馬哥Linux運維 ? 來源:csdn ? 2023-07-06 09:25 ? 次閱讀

當pod處于crash狀態的時候,容器不斷重啟,此時用kubelet logs可能出現一直捕捉不到日志。解決方法:

kubectl previous參數作用: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實現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

數字的含義: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:-

看到分別指向了這兩個容器的日志文件,一個是當前pod里在跑的容器,一個是pod上次跑的容器,現在已經退出了

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的時候讀的是當前容器那個文件,使用–previous的時候,讀的是上次退出的容器的日志文件,由于kubelet為pod保留了上次退出的容器。

我們手動編輯這兩個文件的內容,看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

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

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

/busybox#ls
2394.log2395.log

/busybox#rm2394.log2395.log

我們刪除,然后自己創建,這時是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

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





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • POD
    POD
    +關注

    關注

    0

    文章

    18

    瀏覽量

    6135

原文標題:如何快速查看 Kubernetes Pod 崩潰前的日志

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    阿里云容器Kubernetes監控(二) - 使用Grafana展現Pod監控數據

    kubernetes中承擔的責任遠不止監控數據的采集,還包括控制臺的監控接口、HPA的POD彈性伸縮等都依賴于Heapster的功能。簡介在kubernetes的監控方案中
    發表于 05-10 15:28

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

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

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

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

    崩潰日志快速解析方法

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

    Pod資源配置

    Kubernetes進階實戰》第四章《管理Pod資源對象》
    發表于 10-22 14:39

    Kubernetes平臺中的日志收集方案

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

    如何多點出發快速查看網絡狀態

    如何多點出發快速查看網絡狀態     無論什么類型的網絡,運行時間長了,總有發生故障的時候;遇到網絡故障時,想辦法在最短時間內將
    發表于 04-14 14:02 ?2400次閱讀

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

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

    教你不用三方APP快速查看iPhone/iPad電池循環數

    不下三方APP:教你快速查看iPhone/iPad電池循環數,iphone,電池,ipad,app,電池容量,ios
    發表于 02-04 14:03 ?1.3w次閱讀

    Kubernetes組件pod核心原理

    1. 核心組件原理 —— pod 核心原理 1.1 pod 是什么 pod 也可以理解是一個容器,裝的是 docker 創建的容器,也就是用來封裝容器的一個容器; pod 是一個虛擬化
    的頭像 發表于 09-02 09:27 ?2056次閱讀

    Kubernetes中的Pod簡易理解

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

    Kubernetes Pod如何獨立工作

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

    Kubernetes Pod如何獲取IP地址呢?

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

    Kubernetes Pod常用管理命令詳解

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

    詳解Kubernetes中的Pod調度親和性

    Kubernetes(K8s)中,Pod 調度親和性(Affinity) 是一種高級調度策略,用于控制 Pod 與節點(Node)或其他 Pod 之間的關聯(親和)或反關聯(反親和
    的頭像 發表于 06-07 13:56 ?131次閱讀
    主站蜘蛛池模板: h视频在线观看免费网站 | 辣h高h肉h激h超h | 日本高免费观看在线播放 | 五月激情丁香 | 狼狼鲁狼狼色 | 久久精品免费 | 久久夜视频 | 国产稀缺精品盗摄盗拍 | 2021天天干| 日韩久久精品视频 | 中国毛茸茸bbxx | www.黄色一片| 性xxxxx| 黄色香蕉网| 日本老师69xxxxxxxxx| 日本h视频在线 | 成人亚洲网站www在线观看 | 黄色福利小视频 | 成人亚洲精品 | 亚洲国产成a人v在线观看 | 久久骚| 视频在线高清完整免费观看 | 九月婷婷综合婷婷 | 天天干天天干天天天天天天爽 | 日日拍夜夜嗷嗷叫狠狠 | 色日韩在线 | 国产精品久久久久久久久久影院 | 日本免费黄色片 | 日韩一级一欧美一级国产 | 中文在线免费看影视 | 欧美性猛交xxxxbbbb | 亚洲色图视频在线 | 亚洲伦理一区二区三区 | 2021色噜噜狠狠综曰曰曰 | 大又大又粗又爽又黄毛片女人 | 一区二区免费看 | 天使色吧 | 天天色天天色 | 日本黄段视频 | 欲色影视香色天天影视来 | 日韩特黄特色大片免费视频 |