要保存Kubernetes Pod的日志一段时间,可以使用以下方法:
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-config
namespace: kube-system
data:
fluent.conf: |
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
tag kubernetes.*
read_from_head true
@type json
time_key time
time_format %Y-%m-%dT%H:%M:%S.%NZ
@type elasticsearch
host elasticsearch.default.svc.cluster.local
port 9200
logstash_format true
logstash_prefix kubernetes
logstash_dateformat %Y%m%d
include_tag_key true
tag_key @log_name
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-log
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
hostPath:
path: /data/logs
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-log
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: standard
volumeName: pv-log
---
apiVersion: v1
kind: Pod
metadata:
name: log-pod
spec:
containers:
- name: log-container
image: busybox
command:
- sleep
- "3600"
volumeMounts:
- name: log-volume
mountPath: /var/log
volumes:
- name: log-volume
persistentVolumeClaim:
claimName: pvc-log
使用上述方法,可以将Kubernetes Pod的日志保存一段时间。根据具体需求,可以选择使用日志收集器和集中式日志存储系统,或使用持久化存储来保存日志。