kubernetes的日志

1、日志在哪里

kubelet组件,systemd方式部署,journalctl -u kubelet 查看

其他组件,pod方式部署,kubectl logs 查看

容器运行时将日志写入 /var/log/pods

系统日志,/var/log/message

2、查看服务日志

#首先检查服务启动是否报错

systemctl status kubelet

#如果kubelet报错请查看相关日志

journalctl -u kubelet

3、kubectl logs查看POD和容器日志

#追踪名称空间 kube-system下pod名为etcd-k8s-master的日志

kubectl logs -f etcd-k8s-master -n kube-system

#追踪名称空间 nsA 下容器组 pod1 中容器 container1 的日志

kubectl logs -f pod1 -c container1 -n nsA

#如果容器已经崩溃停止,您可以仍然使用previous​参数来获取日志

kubectl logs --previous​

#查看pod日志

kubectl describe pod etcd-k8s-master -n kube-system

4、使用crictl查看容器日志

#打印正在运行的容器清单

sudo crictl ps -a

#获取容器的所有日志

crictl logs 87d3992f84f74

#获取最近的 N 行日志:

crictl logs --tail=10 87d3992f84f74

#容器上执行命令

crictl exec -i -t 1f73f2d81bf98 ls

5、容器运行时日志

查看目录/var/log/pods/下的日志,类似如下:

kube-flannel_kube-flannel-ds-c7j2m_f5d78efa-5ab3-48b2-9488-7ffba504d401/

kube-system_coredns-7bdc4cb885-9qd6r_f0a41568-0bef-4312-bbaf-6de83f5a7875/

kube-system_coredns-7bdc4cb885-k9d6l_067ce758-d9a8-4b1f-8fbd-c33bc710da2d/

kube-system_etcd-k8s-master_9f85047a488889695d653e524c5088f4/

kube-system_kube-apiserver-k8s-master_9e4ab13cc5ee36028c3854190b5d3d76/

kube-system_kube-controller-manager-k8s-master_9467ecc25c0c60196360d1bef19a731a/

kube-system_kube-proxy-q28tn_9e0839ed-0209-41d1-b5c7-f39c55c8a387/

kube-system_kube-scheduler-k8s-master_f5ea467575d722fc643a57fa666ea7ff/