作为调试的一部分,我需要跟踪诸如POD创建和删除之类的事件。在我的kubernetes设置中,我正在使用记录级别5。
kube API服务器,调度程序,控制器等在主节点上运行,而奴才节点正在运行kubelet和docker。
我正在使用journalctl
在Worker节点上也可以在主节点上获取K8S日志。在工作节点上,我可以看到Docker和Kubelet的日志。这些日志包含我所期望的事件,因为我创建和销毁了豆荚。
但是,在主节点上,我看不到任何相关日志,这些日志可能表明POD创建或删除请求处理。
我可以使用哪些其他日志或方法从Kubernetes Master组件(API服务器,控制器,调度程序等)获取此类日志?
我已经检查了来自API服务器,控制器,调度程序等的日志;他们似乎没有这样的信息。
谢谢
系统组件日志:
有两种类型的系统组件:
-
那些在容器中运行的
-
以及不在容器中运行的
。
例如:
Kubernetes调度程序和Kube-Proxy在容器中运行
kubelet和容器运行时,例如Docker,请勿在容器中运行。
在带有SystemD,kubelet和容器运行时写入Journald的机器上。如果不存在SystemD,则将其写入/var/log Directory中的.log文件。容器内部的系统组件始终写入/var/log目录,绕过默认的日志记录机构。他们使用klog日志记录库。
主组件日志:
从主节点上运行的那些容器中获取它们。
$
$ docker ps | grep apiserver
d6af65a248f1 af20925d51a3 "kube-apiserver --ad…" 2 weeks ago Up 2 weeks k8s_kube-apiserver_kube-apiserver-minikube_kube-system_177a3eb80503eddadcdf8ec0423d04b9_0
5f0e6b33a29f k8s.gcr.io/pause-amd64:3.1 "/pause" 2 weeks ago Up 2 weeks k8s_POD_kube-apiserver-minikube_kube-system_177a3eb80503eddadcdf8ec0423d04b9_0
$
$
$ docker logs -f d6a
但是,所有这些记录方法都只是用于测试,您应该将所有日志(应用程序日志,容器日志,集群级别日志,所有内容)流到中心日志记录系统(例如麋鹿或EFK)。
。