采集k8s挂载Nas后的日志
该文档主要介绍使用logtail以两种不同的方式进行k8s挂载Nas后的日志采集。两种采集方式的实现原理是一样的,都是通过将Logtail和业务容器挂载到相同的NAS上,使Logtail和业务容器的日志数据共享,以此实现日志采集。下面是两种采集方式的各自特点:
- SideCar模式。比较灵活、适合水平扩容,适用于数据量较大的场景;
- 单独部署Logtail的Deployment。资源消耗比较低、但灵活性以及伸缩性不强,适用于整体集群数据量较少的场景(建议整体日志量不超过每秒10M)。
1. Sidecar NAS采集方式
通过 链接 使用PV&PVC的方式配置挂载Nas的nas-pvc
- 步骤一 创建pv
- 步骤二 创建pvc
- 步骤三 根据下面的yaml模板创建含有logtail的Pod,进行单个Pod的内部采集
sideCar模式实验yaml内容:
apiVersion: batch/v1
kind: Job
metadata:
name: nginx-log-sidecar1-demo
spec:
template:
metadata:
name: nginx-log-sidecar-demo
spec:
# volumes配置
volumes:
- name: nginx-log
persistentVolumeClaim:
claimName: nas-pvc
containers:
# 主容器配置
- name: nginx-log-demo
image: registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest
command: ["/bin/mock_log"]
args: ["--log-type=nginx", "--stdout=false", "--stderr=true", "--path=/var/log/nginx/access.log", "--total-count=1000000000", "--logs-per-sec=100"]
volumeMounts:
- name: nginx-log
mountPath: /var/log/nginx
# Logtail的Sidecar容器配置
- name: logtail
image: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latest
env:
# user id
- name: "ALIYUN_LOGTAIL_USER_ID"
value: "${your_aliyun_user_id}"
# user defined id
- name: "ALI