Kubernetes事件日志

时间:2019-03-13 20:34:26

标签: kubernetes

作为调试的一部分,我需要跟踪诸如pod创建和删除之类的事件。在我的kubernetes设置中,我正在使用日志记录级别5。

Kube api服务器,调度程序,控制器等在主节点上运行,而小仆节点在运行kubelet和docker。

我正在使用journalctl来获取主节点以及工作节点上的K8s日志。在工作节点上,我可以看到来自Docker和Kubelet的日志。这些日志包含我创建和销毁Pod时所期望的事件。

但是,在主节点上,我没有看到任何相关的日志,这些日志可能指示吊舱创建或移除请求的处理。

我还可以使用哪些其他日志或方法从Kubernetes主组件(API服务器,控制器,调度程序等)获取此类日志?

我已经检查了来自API服务器,控制器,调度程序,etcd容器的日志;他们似乎没有此类信息。

谢谢

1 个答案:

答案 0 :(得分:1)

系统组件日志:

系统组件有两种类型:

  • 在容器中运行的人

  • 以及不在容器中运行的那些。

例如:

Kubernetes调度程序和kube-proxy在容器中运行

kubelet和容器运行时(例如Docker)不在容器中运行。

在具有systemd的计算机上,kubelet和容器运行时将写入日志。如果不存在systemd,它们将写入/ var / log目录中的.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  

但是所有这些日志记录方法仅用于测试,您应该将所有日志(应用程序日志,容器日志,集群级别日志等所有内容)流式传输到中心日志记录系统,例如ELK或EFK。