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部署一个日志采集容器,通过数据卷共享业务容器日志目录

 

posted @ 2020-11-15 21:58  闫新江  阅读(537)  评论(0编辑  收藏  举报