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!
推薦閱讀:
- 詳解Docker在哪裡保存日志文件
- 關於Rancher部署並導入K8S集群的問題
- k8s中pod使用詳解(雲原生kubernetes)
- Kubernetes中創建命名空間實現方法
- shell腳本查看k8s日志介紹