centos

CentOS上Kubernetes的日志管理怎么做

小樊
41
2025-10-24 06:18:51
栏目: 智能运维

CentOS上Kubernetes日志管理方案设计与实施

一、日志来源梳理

Kubernetes集群的日志主要分为三类,需全面覆盖以确保可观测性:

二、常用日志收集方案

根据集群规模、存储成本及功能需求,选择合适的日志管理方案:

1. EFK Stack(Elasticsearch + Fluentd + Kibana)

适用场景:中大型集群、需要全文检索、复杂分析(如日志关键词搜索、聚合统计)及可视化。
组件职责

2. Loki + Promtail(轻量级替代)

适用场景:中小规模集群、大规模日志量、低成本存储(无需索引,通过标签组织日志)。
组件职责

3. Filebeat + Elasticsearch + Kibana

适用场景:资源受限环境(如边缘节点)、已有Elasticsearch基础架构。
组件职责

三、日志收集实战步骤(以EFK为例)

1. 准备工作

2. 部署Elasticsearch
使用Helm部署单节点Elasticsearch(生产环境建议用StatefulSet+多副本):

helm repo add elastic https://helm.elastic.co
helm install elasticsearch elastic/elasticsearch \
  --namespace logging \
  --set replicas=1 \
  --set resources.requests.cpu="500m" \
  --set resources.requests.memory="2Gi"

3. 部署Fluentd
使用Helm部署Fluentd DaemonSet(收集节点日志并转发至Elasticsearch):

helm repo add fluent https://fluent.github.io/helm-charts
helm install fluentd fluent/fluentd \
  --namespace logging \
  --set daemonset.enabled=true \
  --set elasticsearch.host="elasticsearch.logging.svc.cluster.local" \
  --set elasticsearch.port=9200

4. 部署Kibana
使用Helm部署Kibana(连接Elasticsearch并实现可视化):

helm install kibana elastic/kibana \
  --namespace logging \
  --set elasticsearch.hosts=["elasticsearch.logging.svc.cluster.local:9200"] \
  --set service.type=LoadBalancer

获取Kibana的外部IP(kubectl get svc -n logging kibana),通过浏览器访问http://<IP>:5601进入可视化界面。

5. 验证日志收集

四、日志管理最佳实践

0
看了该问题的人还看了