k8s查看pod日志的幾種實用方法匯總

通過kubectl

kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]

參數 簡寫 默認值 說明
container c   打印指定容器的日志
all-containers   false 獲取pod中所有容器的日志。
selector l   通過標簽篩選pod,支持 ‘=’、‘==’ 和 ‘!=’。
例如 -l key1=value1,key2=value2。
匹配對象必須滿足所有指定的標簽約束。
max-log-requests   5 指定選擇器使用時要遵循的最大並發日志數。默認為 5。
since   0s 僅返回比相對持續時間(如 5s、2m 或 3h)更新的日志。
默認為所有日志。since-time和since隻能二選一
since-time     僅在特定日期 (RFC3339格式)之後返回日志。
默認為所有日志。since-time和since隻能二選一
tail   -1 要顯示的最近日志文件的行。
limit-bytes   0 要返回的最大日志字節數。默認為無限制。
follow f false 是否持續傳輸日志。
timestamps   false 在日志輸出的每一行包含時間戳
prefix   false 在每個日志行前加上日志源(pod 名稱和容器名稱)

例如:

註意:指定namespace時,不能用-A 和 –all-namespaces。

通過rancher

如果您使用的k8s被rancher托管,則可以使用rancher查看。

註意:在當前常用的2.5和2.6兩個rancher版本中,有些許差異,2.5默認就能查看到全部日志,2.6則需要設置幾個參數。

rancher 2.5

rancher 2.6

有時候,我們在rancher2.6查看某個pod的指定容器的日志時,發現日志框是完全空白的,看不到任何日志信息,而通過kubectl logs,或者docker logs卻能看到不少日志信息。這大概率是因為rancher頁面右下方是日志篩選范圍沒有進行恰當的設置,默認情況下,rancher2.6隻顯示最近30分鐘的日志。所以如果不手動調整一下,就很容易看不到想要日志。設置方式如下圖所示:

如下圖所示,即可看到全部日志:

總結

到此這篇關於k8s查看pod日志的幾種實用方法的文章就介紹到這瞭,更多相關k8s查看pod日志內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: