阅读量:2
在Debian上实现K8S日志管理,可参考以下方案:
一、基础日志查看
- 使用
kubectl logs命令:直接查看Pod日志,如kubectl logs。-n - 查看组件日志文件:K8S组件日志默认存放在
/var/log目录,如kubelet.log、docker.log。
二、集中式日志管理(EFK方案)
1. 部署Fluentd收集日志
- 通过DaemonSet在每个节点部署Fluentd,收集容器和系统日志,配置示例:
应用配置:# fluentd-ds.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd namespace: kube-system spec: template: spec: containers: - name: fluentd image: fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: "elasticsearch.logging.svc.cluster.local" - name: FLUENT_ELASTICSEARCH_PORT value: "9200"kubectl apply -f fluentd-ds.yaml。
2. 部署Elasticsearch存储日志
- 使用Deployment部署Elasticsearch,配置存储和集群参数:
应用配置:# elasticsearch-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: elasticsearch namespace: logging spec: replicas: 1 template: spec: containers: - name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1 ports: - containerPort: 9200kubectl apply -f elasticsearch-deployment.yaml。
3. 部署Kibana可视化日志
- 通过Deployment和Service部署Kibana,配置Elasticsearch连接:
应用配置:# kibana-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: kibana namespace: logging spec: template: spec: containers: - name: kibana image: docker.elastic.co/kibana/kibana:7.12.1 env: - name: ELASTICSEARCH_HOSTS value: "http://elasticsearch.logging.svc.cluster.local:9200"kubectl apply -f kibana-deployment.yaml,通过NodePort或Ingress访问Kibana。
三、日志轮转与清理
- 使用
logrotate工具:在节点上安装logrotate,配置日志分割和保留策略,例如:通过DaemonSet在节点上自动部署# /etc/logrotate.d/kubernetes /var/lib/docker/containers/*/*.log { daily rotate 7 compress missingok notifempty sharedscripts postrotate systemctl restart docker endscript }logrotate。
四、可选方案:Loki轻量级日志聚合
- 部署Grafana Loki替代ELK,适合资源有限场景,通过DaemonSet采集日志并存储,配置示例:
参考官方文档配置Promtail采集日志并发送至Loki。# loki-ds.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: loki spec: template: spec: containers: - name: loki image: grafana/loki:2.9.1 args: ["-config.file=/etc/loki/config.yaml"]
五、日志级别与驱动配置
- 调整组件日志级别:修改K8S组件启动参数,如
kube-apiserver添加--v=4参数(数值越大日志越详细)。 - 使用JSON文件驱动:在Pod中配置
json-file日志驱动,限制单个日志文件大小:# pod-log-driver.yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image: nginx volumeMounts: - name: varlog mountPath: /var/log volumes: - name: varlog emptyDir: {}
以上方案可根据实际需求选择,EFK适合大规模集群,Loki适合轻量级场景,均可在Debian系统上通过Kubernetes资源定义实现。
以上就是关于“K8S在Debian上的日志管理如何实现”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm