我已將我的應用程式部署到 Kubernetes,它正在生成一些日志。我可以通過運行查看日志kubectl logs -f <pod-id> -n staging,但我找不到日志在 pod 上的物理位置。這/var/log/檔案夾是空的,我也無法在 pod 的其他任何地方找到日志。
為什么會發生這種情況,日志應該在哪里?
uj5u.com熱心網友回復:
正如@Achraf Bentabib 所說
Kubernetes 創建了一個目錄結構來幫助你基于 Pod 查找日志,因此你可以在一個節點上找到每個 Pod 的容器日志
/var/log/pods/<namespace>_<pod_name>_<pod_id>/<container_name>/
識別運行 Pod 的節點:
kubectl 獲取 pod pod-name -owide
SSH 在該節點上,您可以檢查該節點正在使用哪個日志記錄驅動程式:
如果您使用的是 docker,那么:
docker info | grep -i logging
如果您使用的是 Kubernetes:
kubectl ssh node NODE_NAME
如果日志記錄驅動程式寫入檔案,您可以通過知道該 Pod 的容器 id 來檢查特定 Pod 的當前輸出,這樣做是在控制平面節點上
kubectl get pod pod-name ojsonpath='{.status.containerStatuses[0].containerID}'
例子:
var/log/containers/<pod-name>_<namespace>_<container-name-container-id>.log -> /var/log/pods/<some-uuid>/<container-name>_0.log
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/520315.html
標籤:Kubernetes
