精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Kubernetes 應用問題的通用排查思路

云計算
本片文章介紹下 Kubernetes 應用問題的通用排查思路,分享一個線上此類問題的排查案例,總結下背后的相關知識,以饗讀者,大家共勉!

[[428799]]

本文轉載自微信公眾號「明哥的IT隨筆」,作者IT明哥。轉載本文請聯系明哥的IT隨筆公眾號。

大家好,我是明哥!

本片文章介紹下 Kubernetes 應用問題的通用排查思路,分享一個線上此類問題的排查案例,總結下背后的相關知識,以饗讀者,大家共勉!

1 技術趨勢大背景

我們知道,大數據進一步發展的一個趨勢,就是大數據和云計算進一步融合(包括在底層更加青睞存儲計算分離的架構,在底層更加青睞對象存儲),在部署架構上支持混合云和多云場景,擁抱云計算走向云原生化。

對應到底層具體技術堆棧上,體現在各個主流大數據平臺和底層的大數據組件,紛紛開始支持以 Kubernetes 和 Docker 為代表的容器系列技術棧。

所以大數據從業者,需要不斷擴展自己的技能包,掌握 Kubernetes 和 Docker 的基礎知識和常見命令,才能在排查大數據相關問題時不至于捉襟見肘,因技能儲備短缺,無從下手。

從技術視角看大數據行業的發展趨勢

在此分享一個大數據平臺中 docker 容器相關故障的排查案列,并介紹下此類問題的背后知識和排查思路,以饗讀者,大家共勉!

2 問題現象

星環大數據平臺 TDH 中, zookeeper 服務無法正常啟動。我們知道 TDH 中,各個服務其實是在 k8s 的管控下運行于 docker 容器中,通過 kubectl get pods -owide |grep -i zoo 可以發現,對應的 pod 的狀態是CrashLoopBackOff,如下圖所示:

pod-CrashLoopBackOff

3 背后知識:什么是 CrashLoopBackOff?

某個 pod 處于 CrashloopBackOff, 意味著該 pod 中的容器被啟動了,然后崩潰了,接下來又被自動啟動了,但又崩潰了,如此周而復始,陷入了(starting, crashing, starting,crashing)的循壞.

注意:pod 中的容器之所以會被自動重啟,其實是通過 PodSpec 中的 restartPolicy 指定的,該配置項默認是 Always,即失敗后會自動重啟:

  • A PodSpec has a restartPolicy field with possible values Always, OnFailure, and Never which applies to all containers in a pod, the default value is Always;
  • The restartPolicy only refers to restarts of the containers by the kubelet on the same node (so the restart count will reset if the pod is rescheduled in a different node).
  • Failed containers that are restarted by the kubelet are restarted with an exponential back-off delay (10s, 20s, 40s …) capped at five minutes, and is reset after ten minutes of successful execution.

4 背后知識:為什么會發生 CrashLoopBackOff 錯誤?

pod 的 CrashLoopBackOff 錯誤還是挺常見的,該錯誤可能會因為多種原因被觸發,幾個主要的上層原因有:

  • Kubernetes 集群部署有問題;
  • 該 pod 或 pod 底層的 container 的某些參數被配置錯了;
  • 該 pod 內部的 container 中運行的應用程序,在多次重啟運行時都一直處于失敗狀態;

5 背后知識:如何排查 pod 容器底層的應用程序的故障?

當 pod 容器底層的應用程序運行出現故障時,通用的排查思路,一般是:

  • 步驟一:通過命令 kubectl describe pod xxx 獲取 pod 詳細信息
  • 步驟二:通過命令 kubectl logs xxx 查看 pod 容器底層的應用程序的日志
  • 步驟三:進一步獲取并查看 pod 容器底層的應用程序的其它日志文件,深挖問題原因

有的小伙伴可能會有疑問,上述步驟二和步驟三都是查看 pod 容器底層的應用程序的日志,有什么區別呢?

其實步驟二和步驟三在底層查看的是應用程序的不同的日志文件,其底層細節跟 kubernetes 的日志機制,以及該 pod 底層的應用程序將日志寫向何處有關:

  • kubectl logs 展示的是 pod 底層的 container 的標準輸出 stdout 和標準錯誤 stderr 的日志;
  • 應用程序寫到其它文件的日志,kubectl logs 展示不了,需要獲取日志文件路徑,并自行查看;
  • k8s 建議應用程序將日志寫到 container 的標準輸出 stdout 和標準錯誤 stderr;
  • 容器內的應用程序可以將日志直接寫到 container 的標準輸出 stdout 和標準錯誤 stderr;
  • 如果容器內的應用程序不能或不方便將日志直接寫到 container 的標準輸出 stdout 和標準錯誤 stderr,可以使用 sidecar 即邊車模式,在應用程序的 container 所在的 pod 內部署另一個 sidecar container,該 sidecar container 負責讀取應用程序的日志文件并輸出到其標準輸出 stdout 和標準錯誤 stderr 里;
  • k8s 在底層會通過運行在各個節點的 kubelet 來收集節點中所有 container 的 stdout 和 stderr 日志,并寫到一個 kubelet 管理的本地文件中;
  • 用戶執行 kubectl logs xx 命令時,該命令在底層會調用該 container 對應節點上的 kubelet 來檢索其管理的本地日志文件,以獲取日志;
  • 用戶使用 kubectl log xxx 來檢索應用程序日志,省去了用戶登錄 k8s 集群中對應節點查看對應日志的繁瑣操作,提供了很大遍歷;

ps. 我們這里討論的是運行在 k8s 容器中的應用程序的日志,除了應用程序的日志,其實整個k8s 集群中還有很多系統組件的日志,如:docker,kubelet,kube-proxy,kube-apiserver,kube-scheduler,etcd等。

6 問題排查復盤

按照上述通用問題排查思路,我們復盤回顧下該 CrashLoopBackOff 問題的排查經過。

6.1:問題排查復盤:通過命令 kubeclt describe pod xxx 獲取 pod 詳細信息

該命令輸出的部分截圖如下,通過輸出中 Events 部分,我們可以獲取如下信息:該 pod 被成功地分配到了某個節點上,然后鏡像拉取成功,然后 contaier 創建和啟動成功,但隨后 contaier 中程序運行失敗,最后 pod 進入到了 BackOff 狀態:

kubectl-describe-pod

該命令的詳細輸出如下:

  1. kubectl describe pod zookeeper-server-license-7fbfc544fc-h8nn9 
  2. Name:               zookeeper-server-license-7fbfc544fc-h8nn9 
  3. Namespace:          default 
  4. Priority:           0 
  5. PriorityClassName:  <none> 
  6. Node:               uf30-tdh3-regression/10.20.159.115 
  7. Start Time:         Mon, 11 Oct 2021 16:56:30 +0800 
  8. Labels:             name=zookeeper-server-license 
  9.                     pod-template-hash=3969710097 
  10.                     podConflictName=zookeeper-server-license 
  11. Annotations:        <none> 
  12. Status:             Running 
  13. IP:                 10.20.159.115 
  14. Controlled By:      ReplicaSet/zookeeper-server-license-7fbfc544fc 
  15. Containers: 
  16.   zookeeper-server-license: 
  17.     Container ID:  docker://0887c97ab185f1b004759e8c85b48631f511cb43088424190c3f27c715bb8414 
  18.     Image:         transwarp/zookeeper:transwarp-6.0.2-final 
  19.     Image ID:      docker-pullable://transwarp/zookeeper@sha256:19bf952dedc70a1d82ba9dd9217a2b7e34fc018561c2741d8f6065c0d87f8a10 
  20.     Port:          <none> 
  21.     Args: 
  22.       boot.sh 
  23.       LICENSE_NODE 
  24.     State:          Terminated 
  25.       Reason:       Error 
  26.       Exit Code:    1 
  27.       Started:      Mon, 11 Oct 2021 17:12:09 +0800 
  28.       Finished:     Mon, 11 Oct 2021 17:12:10 +0800 
  29.     Last State:     Terminated 
  30.       Reason:       Error 
  31.       Exit Code:    1 
  32.       Started:      Mon, 11 Oct 2021 17:07:07 +0800 
  33.       Finished:     Mon, 11 Oct 2021 17:07:08 +0800 
  34.     Ready:          False 
  35.     Restart Count:  8 
  36.     Environment: 
  37.       ZOOKEEPER_CONF_DIR:  /etc/license/conf 
  38.     Mounts: 
  39.       /etc/license/conf from conf (rw) 
  40.       /etc/localtime from timezone (rw) 
  41.       /etc/tos/conf from tos (rw) 
  42.       /etc/transwarp/conf from transwarphosts (rw) 
  43.       /usr/lib/transwarp/plugins from plugin (rw) 
  44.       /var/license from data (rw) 
  45.       /var/log/license/ from log (rw) 
  46.       /var/run/secrets/kubernetes.io/serviceaccount from default-token-g42jt (ro) 
  47.       /vdir from mountbind (rw) 
  48. Conditions: 
  49.   Type           Status 
  50.   Initialized    True  
  51.   Ready          False  
  52.   PodScheduled   True  
  53. Volumes: 
  54.   data: 
  55.     Type:          HostPath (bare host directory volume) 
  56.     Path:          /var/license 
  57.     HostPathType:   
  58.   conf: 
  59.     Type:          HostPath (bare host directory volume) 
  60.     Path:          /etc/license/conf 
  61.     HostPathType:   
  62.   log: 
  63.     Type:          HostPath (bare host directory volume) 
  64.     Path:          /var/log/license/ 
  65.     HostPathType:   
  66.   mountbind: 
  67.     Type:          HostPath (bare host directory volume) 
  68.     Path:          /transwarp/mounts/license 
  69.     HostPathType:   
  70.   plugin: 
  71.     Type:          HostPath (bare host directory volume) 
  72.     Path:          /usr/lib/transwarp/plugins 
  73.     HostPathType:   
  74.   timezone: 
  75.     Type:          HostPath (bare host directory volume) 
  76.     Path:          /etc/localtime 
  77.     HostPathType:   
  78.   transwarphosts: 
  79.     Type:          HostPath (bare host directory volume) 
  80.     Path:          /etc/transwarp/conf 
  81.     HostPathType:   
  82.   tos: 
  83.     Type:          HostPath (bare host directory volume) 
  84.     Path:          /etc/tos/conf 
  85.     HostPathType:   
  86.   default-token-g42jt: 
  87.     Type:        Secret (a volume populated by a Secret) 
  88.     SecretName:  default-token-g42jt 
  89.     Optional:    false 
  90. QoS Class:       BestEffort 
  91. Node-Selectors:  zookeeper-server-license=true 
  92. Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s 
  93.                  node.kubernetes.io/unreachable:NoExecute for 300s 
  94. Events: 
  95.   Type     Reason                 Age                 From                           Message 
  96.   ----     ------                 ----                ----                           ------- 
  97.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "default-token-g42jt" 
  98.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "conf" 
  99.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "tos" 
  100.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "mountbind" 
  101.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "transwarphosts" 
  102.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "log" 
  103.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "plugin" 
  104.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "data" 
  105.   Normal   SuccessfulMountVolume  15m                 kubelet, uf30-tdh3-regression  MountVolume.SetUp succeeded for volume "timezone" 
  106.   Normal   Scheduled              15m                 default-scheduler              Successfully assigned zookeeper-server-license-7fbfc544fc-h8nn9 to uf30-tdh3-regression 
  107.   Normal   Pulled                 15m (x3 over 15m)   kubelet, uf30-tdh3-regression  Successfully pulled image "transwarp/zookeeper:transwarp-6.0.2-final" 
  108.   Normal   Created                15m (x3 over 15m)   kubelet, uf30-tdh3-regression  Created container 
  109.   Normal   Started                15m (x3 over 15m)   kubelet, uf30-tdh3-regression  Started container 
  110.   Normal   Pulling                15m (x4 over 15m)   kubelet, uf30-tdh3-regression  pulling image "transwarp/zookeeper:transwarp-6.0.2-final" 
  111.   Warning  BackOff                44s (x70 over 15m)  kubelet, uf30-tdh3-regression  Back-off restarting failed container 

6.2 問題排查復盤:通過命令 kubectl logs xxx 查看 pod 容器底層的應用程序的日志

接下來我們嘗試通過命令 kubectl logs xxx 查看 pod 容器底層的應用程序的日志,以期找到問題的原因,該命令的輸出部分截圖如下所示:圖片

如上圖所見,不幸的是,該命令的輸出,沒有展示出問題的根本原因。

在底層日志機制上,應該是星環 tdh 中該 zk 應用沒有將日志打印到標準輸出 stdout 和標準錯誤 stderr, 所以 kubectl logs xxx 查看不到對應的日志。

我們需要進一步排查。

6.3 問題排查復盤:進一步獲取并查看 pod 容器底層的應用程序的其它日志文件,深挖問題原因

進一步排查問題,我們首先需要獲取 pod 容器底層的應用程序的其它日志文件的路徑。

由于 tdh 是閉源的,我們查看不到應用程序的源碼,在沒有聯絡官方客戶的情況下,我們可以通過命令 kubectl describe pod xxx 查看該 pod 掛載了哪些 volume,然后猜測并驗證獲得具體的日志文件的路勁給,(排查問題就是要,大膽猜想,小心求證!)

該命令輸出的部分截圖如下,我們看到其中掛載了路徑 /var/log/license:

接下來我們查看這些日志文件/var/log/license,嘗試深挖問題原因,注意,該文件是本地文件系統的文件,需要登錄到對應的節點上去查看,該日志文件部分關鍵截圖如下:

通過日志,問題原因找到了:zk 底層存儲在本地文件系統中的文件 /var/license/version-2/snapshot.70000007a 損壞了,所以無法啟動:

  1. 2021-10-11 17:07:08,330 ERROR org.apache.zookeeper.server.persistence.Util: [myid:16] - [main:Util@239] - Last transaction was partial
  2. 2021-10-11 17:07:08,331 ERROR org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@453] - Unable to load database on disk 
  3. java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:392) 

該日志文件詳細內容如下:

  1. tail -50 /var/log/license/zookeeper.log 
  2. 2021-10-11 17:07:08,203 INFO  org.apache.zookeeper.server.DatadirCleanupManager: [myid:16] - [main:DatadirCleanupManager@101] - Purge task is not scheduled. 
  3. 2021-10-11 17:07:08,212 INFO  org.apache.zookeeper.server.quorum.QuorumPeerMain: [myid:16] - [main:QuorumPeerMain@127] - Starting quorum peer 
  4. 2021-10-11 17:07:08,221 INFO  org.apache.zookeeper.server.NIOServerCnxnFactory: [myid:16] - [main:NIOServerCnxnFactory@94] - binding to port 0.0.0.0/0.0.0.0:2291 
  5. 2021-10-11 17:07:08,235 INFO  org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@913] - tickTime set to 9000 
  6. 2021-10-11 17:07:08,235 INFO  org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@933] - minSessionTimeout set to -1 
  7. 2021-10-11 17:07:08,235 INFO  org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@944] - maxSessionTimeout set to -1 
  8. 2021-10-11 17:07:08,236 INFO  org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@959] - initLimit set to 10 
  9. 2021-10-11 17:07:08,285 INFO  org.apache.zookeeper.server.persistence.FileSnap: [myid:16] - [main:FileSnap@83] - Reading snapshot /var/license/version-2/snapshot.70000007a 
  10. 2021-10-11 17:07:08,330 ERROR org.apache.zookeeper.server.persistence.Util: [myid:16] - [main:Util@239] - Last transaction was partial
  11. 2021-10-11 17:07:08,331 ERROR org.apache.zookeeper.server.quorum.QuorumPeer: [myid:16] - [main:QuorumPeer@453] - Unable to load database on disk 
  12. java.io.EOFException 
  13.         at java.io.DataInputStream.readInt(DataInputStream.java:392) 
  14.         at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63) 
  15.         at org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeader.java:64) 
  16.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStreamCreated(FileTxnLog.java:558) 
  17.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:577) 
  18.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:543) 
  19.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:625) 
  20.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:529) 
  21.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:504) 
  22.         at org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:341) 
  23.         at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:132) 
  24.         at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223) 
  25.         at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:417) 
  26.         at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:409) 
  27.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:151) 
  28.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111) 
  29.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) 
  30. 2021-10-11 17:07:08,332 ERROR org.apache.zookeeper.server.quorum.QuorumPeerMain: [myid:16] - [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally 
  31. java.lang.RuntimeException: Unable to run quorum server  
  32.         at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:454) 
  33.         at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:409) 
  34.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:151) 
  35.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111) 
  36.         at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) 
  37. Caused by: java.io.EOFException 
  38.         at java.io.DataInputStream.readInt(DataInputStream.java:392) 
  39.         at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63) 
  40.         at org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeader.java:64) 
  41.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStreamCreated(FileTxnLog.java:558) 
  42.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:577) 
  43.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:543) 
  44.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:625) 
  45.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:529) 
  46.         at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:504) 
  47.         at org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:341) 
  48.         at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:132) 
  49.         at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223) 
  50.         at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:417) 
  51.         ... 4 more 

7 問題解決

通過以上通用問題排查思路,我們查看日志找到了問題原因:zk 底層存儲在本地文件系統中的文件 /var/license/version-2/snapshot.70000007a 損壞了,所以無法啟動。由于集群中 zk 是有多個節點的,且其它節點的 zk 啟動是成功的,所以我們 可以刪除該問題節點上述目錄下的數據文件,然后重啟該節點的 zk, 重啟后該節點的 zk 就可以從其它節點復制數據到本地,就可以正常對外提供服務了!

zk 底層存儲在本地文件系統中的文件,在正常節點于問題節點,對比截圖如下:

zk data on good node

zk data on bad node

按照上述方法,清空目錄重啟zk后,kubectl get pods 查看服務正常,截圖如下:

kubectl-get-pods-after-fix

注意:其實 zk 也提供了系統工具 zkCleanup.sh 來清理本地數據文件,筆者沒有使用該工具,而是手工備份和清空了問題節點的本地文件。大家可以自行嘗試該工具。

zkCleanup.sh

8 知識總結

  • 大數據從業者,需要不斷擴展自己的技能包,掌握 Kubernetes 和 Docker 的基礎知識和常見命令,才能在排查大數據相關問題時不至于捉襟見肘,因技能儲備短缺,無從下手;
  • 某個 pod 處于 CrashloopBackOff, 意味著該 pod 中的容器被啟動了,然后崩潰了,接下來又被自動啟動了,但又崩潰了,如此周而復始,陷入了(starting, crashing, starting,crashing)的循壞;
  • 當 pod 容器底層的應用程序運行出現故障時,通用的排查思路,一般是:

步驟一:通過命令 kubectl describe pod xxx 獲取 pod 詳細信息;

步驟二:通過命令 kubectl logs xxx 查看 pod 容器底層的應用程序的日志;

步驟三:進一步獲取并查看 pod 容器底層的應用程序的其它日志文件,深挖問題原因;

  • kubectl logs 展示的是 pod 底層的 container 的標準輸出 stdout 和標準錯誤 stderr 的日志, 應用程序寫到其它文件的日志,kubectl logs 展示不了,需要獲取日志文件路徑,并自行查看;
  • k8s 建議應用程序將日志寫到 container 的標準輸出 stdout 和標準錯誤 stderr;
  • 容器內的應用程序可以將日志直接寫到 container 的標準輸出 stdout 和標準錯誤 stderr;如果容器內的應用程序不能或不方便將日志直接寫到 container 的標準輸出 stdout 和標準錯誤 stderr,可以使用 sidecar 即邊車模式,在應用程序的 container 所在的 pod 內部署另一個 sidecar container,該 sidecar container 負責讀取應用程序的日志文件并輸出到其標準輸出 stdout 和標準錯誤 stderr 里;
  • k8s 在底層會通過運行在各個節點的 kubelet 來收集節點中所有 container 的 stdout 和 stderr 日志,并寫到一個 kubelet 管理的本地文件中;
  • 用戶執行 kubectl logs xx 命令時,該命令在底層會調用該 container 對應節點上的 kubelet 來檢索其管理的本地日志文件,以獲取日志;
  • 用戶使用 kubectl log xxx 來檢索應用程序日志,省去了用戶登錄 k8s 集群中對應節點查看對應日志的繁瑣操作,提供了很大便利;
  • 排查問題,需要大膽猜想小心求證!

 

責任編輯:武曉燕 來源: 明哥的IT隨筆
相關推薦

2023-10-08 13:10:00

Redis數據庫

2019-12-13 10:50:10

TCP排查服務器

2023-05-18 08:00:00

2024-03-15 10:05:13

Kubernetes容器云原生

2023-10-13 12:05:55

RedisBig Key

2021-04-19 17:25:08

Kubernetes組件網絡

2019-07-16 06:43:18

LinuxCPU占用率

2021-04-25 09:25:25

Linux手工排查

2021-09-26 19:39:58

MogDB故障數據庫

2021-04-19 08:02:54

Windows手工入侵

2024-02-20 16:55:14

K8S云計算

2021-03-29 12:35:04

Kubernetes環境TCP

2020-04-08 11:12:37

Linux開發工具

2019-12-09 10:40:15

YAMLBashKubernetes

2022-04-03 19:51:38

linux服務性能

2020-09-25 11:10:51

運維故障排查監控

2021-10-28 17:05:11

IT運維故障

2021-03-03 08:57:46

java死鎖線程

2025-08-29 07:32:17

2010-09-25 15:19:04

DHCP故障問題
點贊
收藏

51CTO技術棧公眾號

精品无码人妻一区二区三区品| 亚洲日本精品| 国产午夜精品无码一区二区| 牛牛视频精品一区二区不卡| 色悠悠久久综合| 亚洲第一导航| 亚洲高清视频网站| 欧美资源在线| 在线电影欧美日韩一区二区私密| 青青草原播放器| 欧美gv在线观看| 国产精品久久久久久久久免费相片| 91精品视频播放| 国产午夜精品无码| 国产精品成人a在线观看| 亚洲第一区第一页| 精品日韩久久久| 肉体视频在线| 久久这里只有精品6| 成人免费福利视频| 国产区一区二区三| 91久久夜色精品国产按摩| 精品sm在线观看| 亚洲天堂国产视频| 欧美电影h版| 亚洲一区成人在线| 自拍亚洲欧美老师丝袜| 视频一区二区三区在线看免费看| 美女视频黄a大片欧美| 午夜伦理精品一区| 四虎永久免费地址| 亚洲人成网站77777在线观看| 日韩亚洲欧美在线| 中文字幕22页| 日韩av电影资源网| 日韩欧美一区二区三区| 亚洲免费视频播放| 午夜毛片在线| 日本一区二区综合亚洲| 精品国产aⅴ麻豆| 亚洲精品无遮挡| 激情综合亚洲精品| 国产精品美腿一区在线看| 国偷自拍第113页| 亚洲国产高清一区二区三区| 欧美成人全部免费| 日本少妇aaa| 久久影院一区| 日韩中文字幕视频| 黄瓜视频污在线观看| 另类在线视频| 精品久久国产字幕高潮| 日本黄色三级网站| 视频二区欧美毛片免费观看| 在线不卡欧美精品一区二区三区| 国内外成人激情视频| 欧美videosex性极品hd| 一区二区成人在线| 国产精品日韩三级| 肉体视频在线| 欧美日韩激情小视频| 狠狠干 狠狠操| 欧美a级在线观看| 一本久道久久综合中文字幕 | 日本一区二区三区在线免费观看| 热久久久久久| 91.麻豆视频| 最好看的中文字幕| 超碰97久久| 亚洲国产精品人人爽夜夜爽| 黄色性生活一级片| 国产精品一区2区3区| 亚洲视频在线观看免费| 国产传媒在线看| 五月激情久久久| 欧美第一淫aaasss性| 奇米影视第四色777| 国产精品婷婷| 国产色综合天天综合网| 国产精品无码一区二区桃花视频| 国产美女av一区二区三区| 97自拍视频| 五月天久久久久久| 国产视频在线观看一区二区三区| 亚洲成人第一| 色呦呦呦在线观看| 欧美日韩亚洲国产一区| 天天操天天爱天天爽| 高清精品久久| 日韩av中文字幕在线播放| 小早川怜子久久精品中文字幕| 欧美大黑bbbbbbbbb在线| 精品自拍视频在线观看| 亚洲天堂一区在线| 久久99精品久久久久久| 国产精品乱码| 91se在线| 亚洲成在线观看| 91香蕉视频污版| 2020最新国产精品| 精品网站999www| 在线观看亚洲网站| 国产精品人人爽人人做我的可爱| 国产欧美韩国高清| 无码国精品一区二区免费蜜桃| 国产欧美日韩不卡免费| 久久亚洲国产成人精品无码区| 欧洲av不卡| 日韩欧美激情在线| 国产伦精品一区二区三区视频女| 狠久久av成人天堂| 国产精品欧美在线| 三级黄视频在线观看| 亚洲欧美乱综合| 成人性生生活性生交12| 国产日韩三级| 欧美成人黑人xx视频免费观看| 亚洲GV成人无码久久精品| 国产成人免费在线观看不卡| 日本一区视频在线播放| 国产精品25p| 欧美一二三在线| 国产一区第一页| 久久久久国产精品一区三寸| 国产精品一区二| a黄色片在线观看| 欧美日韩中文字幕精品| 四虎永久免费影院| 国产精品av久久久久久麻豆网| 国产精品视频地址| 男男激情在线| 韩曰欧美视频免费观看| 国产精品嫩草69影院| 欧美oldwomenvideos| 国产精品欧美在线| 国产精品久久久久久久龚玥菲| 精品欧美国产一区二区三区| 91成人在线观看喷潮蘑菇| 小说区亚洲自拍另类图片专区| 国产精品久久久久久五月尺| 欧美色图另类| 欧美日韩一区二区在线播放| 欲求不满的岳中文字幕| 亚洲手机视频| 国产美女精品在线观看| 欧美videosex性欧美黑吊| 日韩精品影音先锋| 成熟的女同志hd| 国产成人午夜视频| 粉嫩av一区二区三区天美传媒| 国产亚洲观看| 久久在线视频在线| 国产深喉视频一区二区| 亚洲色图欧美偷拍| 少妇性l交大片7724com| 欧美在线首页| 国产精品国产三级欧美二区| 精品精品导航| 亚洲国产成人精品久久| 国产成人在线观看网站| 91热门视频在线观看| 美女福利视频在线| 国产一区二区三区91| 国产精品欧美一区二区三区奶水| 91精品专区| 91麻豆精品国产91久久久更新时间| 欧美做爰啪啪xxxⅹ性| 国产成人一级电影| 国产一区二区视频播放| 中文精品一区二区| 国产精品爽爽爽| 精品国产99久久久久久| 日韩午夜在线观看视频| 国产精品不卡av| 91蝌蚪porny成人天涯| 午夜欧美福利视频| 久久久久久久久久久妇女 | 亚洲一区二区三区中文字幕在线观看 | 东热在线免费视频| 欧美日韩国产在线观看| 99久久婷婷国产综合| 成人综合婷婷国产精品久久免费| 2018国产在线| 国产一区不卡| 亚洲aaa激情| 中文字幕在线中文字幕在线中三区| 亚洲欧洲激情在线| 国产又粗又猛又爽| 亚洲成人av一区二区| 亚洲人成人无码网www国产 | 91激情在线视频| 久久国产波多野结衣| 成人18视频在线播放| 欧美日韩在线免费播放| 午夜精品亚洲| 欧美亚洲另类久久综合| 精品国产乱码久久久久久樱花| 性色av一区二区三区免费| 日韩精品成人av| 亚洲国产欧美久久| 一级黄色片视频| 欧美日韩亚洲一区二区| 四虎永久免费地址| 久久久久9999亚洲精品| 好吊操视频这里只有精品| 久久先锋影音| 久久综合久久网| 日本久久一二三四| 精品中文字幕人| 亚洲3区在线| 国产精品中文字幕在线| caoporn视频在线| 久久精品一本久久99精品| 青梅竹马是消防员在线| 日韩精品一区二区三区在线观看 | 免费一二一二在线视频| 日韩在线观看免费| 可以直接在线观看的av| 精品国产一区久久| 国产精品无码一区二区桃花视频| 91精品91久久久中77777| 亚洲一区欧美在线| 一区二区三区日韩精品| 欧日韩不卡视频| 久久久不卡影院| 国产精品300页| 国产91丝袜在线播放| 91 视频免费观看| 日韩av中文字幕一区二区三区| 成年人看的毛片| 你懂的国产精品永久在线| 亚洲国产一区二区精品视频 | 亚洲精品久久久久久久久| h狠狠躁死你h高h| 欧美精三区欧美精三区| 国产精品午夜一区二区| 色爱区综合激月婷婷| 久久久精品免费看| 精品久久久一区| 天天综合网入口| 色综合咪咪久久| 亚洲精品午夜国产va久久成人| 亚洲高清在线精品| 精品无码人妻一区二区三区品 | 99精品欧美一区二区蜜桃免费| 苍井空张开腿实干12次| 精品一区二区日韩| 国产女同无遮挡互慰高潮91| 美国十次了思思久久精品导航| 无人在线观看的免费高清视频 | 亚洲高清av一区二区三区| 久久99精品国产麻豆婷婷| 黄色片视频在线| 久久狠狠亚洲综合| 九九热免费在线观看| 国产在线精品一区二区不卡了 | 毛片视频网站在线观看| 欧美视频在线免费| 99精品在线播放| 欧美亚洲动漫另类| 黄色av一区二区| 欧美电影一区二区| www.好吊色| 日韩av在线免费| 国产最新视频在线| 综合网日日天干夜夜久久| 免费在线观看黄| 欧美美女18p| 白浆视频在线观看| 国产精国产精品| 伊人久久大香| 国产日韩欧美精品| 国产成人黄色| 中文字幕中文字幕在线中一区高清| 欧美1区2区视频| 亚洲熟妇无码另类久久久| 久久精品一区| 欧美一级小视频| 99久久精品99国产精品| 少妇无套高潮一二三区| 日韩美女啊v在线免费观看| 久久久精品视频在线| 日韩欧美在线视频日韩欧美在线视频| 国产成人精品一区二区色戒| 日韩亚洲欧美高清| 免费在线稳定资源站| 精品国产一区二区在线| 2021中文字幕在线| 国产成人啪精品视频免费网| 精品国产不卡一区二区| 欧美不卡1区2区3区| 日韩在线视屏| 日本在线xxx| 狠狠色丁香久久婷婷综合_中 | 精品国产导航| 亚洲欧洲三级| 99国产精品久久久久久久| 久久久精品麻豆| 成人18精品视频| 老熟妇高潮一区二区三区| 日韩欧美成人网| 午夜精品无码一区二区三区| 亚洲视频欧美视频| 搞黄网站在线看| 国产欧美va欧美va香蕉在| 欧美有码在线| 国产精品国产三级国产专区51| 可以看av的网站久久看| 亚洲一二三四五| 中文字幕亚洲不卡| 日本视频在线观看免费| 日韩欧美亚洲国产另类| 幼a在线观看| 欧美在线视频一区二区| 在线观看视频一区二区三区 | 在线视频二区| 欧美最顶级的aⅴ艳星| 日韩免费高清视频网站| 亚洲日本无吗高清不卡| 鲁大师成人一区二区三区| 国产精品果冻传媒| 亚洲视频在线观看一区| 美女黄页在线观看| 亚洲男人天堂2023| 福利在线免费视频| 国产精品av一区| 欧美一区视频| 99日在线视频| 最新日韩在线视频| 免费一级a毛片| 亚洲欧美在线一区二区| free性欧美| 国产精品视频免费一区二区三区| 亚洲成人三区| 国产亚洲视频一区| 国产精品乱码久久久久久| 成人a v视频| 国产亚洲欧美视频| 久久久久久久| 日本一区二区在线| 久久综合影视| 国产精品综合激情| 欧美日韩一区二区在线视频| 成人一区二区不卡免费| 国产精品va在线播放| 蜜臀久久99精品久久一区二区| 国模无码视频一区二区三区| 99久久免费国产| 国产精品视频免费播放| 国产视频在线观看一区二区| 自拍一区在线观看| 蜜桃网站成人| 日韩高清不卡一区二区| 欧美18—19性高清hd4k| 欧美午夜一区二区| 欧美激情二区| 91福利视频导航| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲av综合色区无码另类小说| 亚洲h动漫在线| 深夜影院在线观看| 国产91成人video| 精品国内自产拍在线观看视频| 日本在线观看免费视频| 国产精品国产三级国产aⅴ原创| 亚洲一区二区人妻| 美女啪啪无遮挡免费久久网站| 一区二区网站| 久久人妻精品白浆国产| 国产精品美女久久福利网站| 99精品视频在线播放免费| 久久久久久久久久久免费精品| 老牛影视av一区二区在线观看| 国产l精品国产亚洲区久久| 91原创在线视频| 中文字幕永久在线视频| 欧美另类在线观看| 欧美日韩精品一区二区三区在线观看| 男人天堂网视频| 中文字幕亚洲精品在线观看| 免费观看黄一级视频| 日本亚洲精品在线观看| 性欧美69xoxoxoxo| 91玉足脚交白嫩脚丫| 欧美私模裸体表演在线观看| 性欧美videos高清hd4k| 久久久精品国产一区二区三区| 秋霞电影一区二区| 久久综合综合久久| 亚洲午夜国产成人av电影男同| 午夜不卡一区| 久久久999视频| 1000部国产精品成人观看| 香蕉av一区二区三区| 国产中文欧美精品| 亚洲欧美高清| avove在线播放| 亚洲香蕉成视频在线观看| 8x国产一区二区三区精品推荐| 热久久精品国产|