[英]Kubernetes pods logs are not getting by kubectl logs command
[英]Kubernetes logs from kubectl logs command is different to /var/log/containers in GKE cluster
我在 GCP 上創建了一個 GKE 集群。
來自 kubectl logs 命令的 Kube.netes 日志與 /var/log/containers 不同
kubectl
{"method":"GET","path":"/healthz","format":"*/*","controller":"Public::PublicPagesController","action":"healthz","status":204,"duration":0.39,"view":0.0,"request_id":"ca29b519-d1e8-49a2-95ae-e5f23b60c36f","params":{},"custom":null,"request_time":"2022-04-27T15:25:43.780+00:00","process_id":6,"@version":"vcam-backend-vvcam-72_shareholder_event-rc16","@timestamp":"2022-04-27T15:25:43.780Z","message":"[204] GET /healthz (Public::PublicPagesController#healthz)"}
並登錄 /var/log/containers,將時間戳添加到我的容器日志的開頭:
2022-04-27T15:25:43.780523421Z stdout F {"method":"GET","path":"/healthz","format":"*/*","controller":"Public::PublicPagesController","action":"healthz","status":204,"duration":0.39,"view":0.0,"request_id":"ca29b519-d1e8-49a2-95ae-e5f23b60c36f","params":{},"custom":null,"request_time":"2022-04-27T15:25:43.780+00:00","process_id":6,"@version":"vcam-backend-vvcam-72_shareholder_event-rc16","@timestamp":"2022-04-27T15:25:43.780Z","message":"[204] GET /healthz (Public::PublicPagesController#healthz)"}
我希望我的應用程序日志是一致的,我希望它采用 json 格式,就像來自 kubectl 命令的日志一樣,這樣我就可以解析和分析更多。
我想刪除這部分: 2022-04-27T15:25:43.780523421Z stdout F
有人遇到這個問題嗎? 如何使容器日志與 kubectl 命令日志相同?
GKE 版本:
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.10-gke.2000", GitCommit:"0823380786b063c3f71d5e7c76826a972e30550d", GitTreeState:"clean", BuildDate:"2022-03-17T09:22:22Z", GoVersion:"go1.16.14b7", Compiler:"gc", Platform:"linux/amd64"}
Docker 守護進程.json
{
"pidfile": "/var/run/docker.pid",
"iptables": false,
"ip-masq": false,
"log-level": "warn",
"bip": "169.254.123.1/24",
"mtu": 1460,
"storage-driver": "overlay2",
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
}
}
注意:我注意到日志行開頭的時間戳僅在我們添加選項docker logs -t
時顯示,文檔在這里但我仍然不知道如何解決 GKE 集群中的這個問題。
此問題與容器運行時接口 (CRI) 有關。 您可以在此處閱讀有關 CRI 的信息。
現在,我仍然無法隨心所欲地更改日志格式,我只是適應這種新格式。 這種格式稱為CRI log format
,GKE 集群的 CRI 默認總是以這種格式產生日志,聚合日志應用也適應這種新的 CRI 日志格式:
所以我認為你需要改變解決這個問題的方式:如果我們不能改變我們想要的日志格式,我們可以使用支持這種日志格式的應用程序。
注意:我不確定,但我認為這個問題來自: Kube.netes is removing support for Docker as a container runtime
- docs ,新的容器運行時生成這種 CRI 日志格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.