我使用k8s的sidecar方法来收集日志。如果我使用emptydiry装载,当pod移动到另一个节点时,未收集的日志会丢失吗?
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox
...
volumeMounts:
- name: varlog
mountPath: /var/log
- name: count-agent
image: k8s.gcr.io/fluentd-gcp:1.30
...
volumeMounts:
- name: varlog
mountPath: /var/log
- name: config-volume
mountPath: /etc/fluentd-config
volumes:
- name: varlog
emptyDir: {}
- name: config-volume
configMap:
name: fluentd-config
是的,您将丢失数据。当pod被移除时(例如,当它被逐出到另一个节点时),emptyDir
被擦除。
您想要保留的日志应该打印到stdout
;然后由集群中的日志记录子系统收集并持久化。
来自文档:
当Pod分配给节点时,首先会创建
emptyDir
卷,并且只要该Pod在该节点上运行,就会存在。