linux运维、架构之路-管理K8s组件日志
一、日志分类
1、K8S系统的组件日志
journalctl -u kubelet
2、K8S Cluster里面部署的应用程序日志
- 标准输出
- 日志文件
kubectl logs nginx -n 命名空间
3、容器标准输出路径
/var/log/docker/containers/<container-id>/<container-id>-json.log
4、查看容器标准输出日志
kubectl logs <Pod名称> kubectl logs -f <Pod名称> kubectl logs -f <Pod名称> -c <容器名称>
5、容器内应用日志路径
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/logs/access.log
将日志文件通过数据卷挂载到宿主机目录,这样一来,就可以在宿主机上统一查看日志了
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: web image: yanxinjiang/nginx-php volumeMounts: - name: logs mountPath: /usr/local/nginx/logs volumes: - name: logs hostPath: path: /tmp/logs #日志挂载宿主机目录 type: Directory
二、日志统一采集方式
- deamonset方式在每个节点部署一个日志采集pod完成对指定目录日志采集
- sidecar在pod部署一个日志采集容器,通过数据卷共享业务容器日志目录
成功最有效的方法就是向有经验的人学习!