在Kubernetes中管理Ubuntu容器日志,可采用以下方案,核心工具为EFK Stack(Fluentd+ Elasticsearch+Kibana),适合企业级需求,也可选择轻量级Loki方案:
kubectl apply -f https://github.com/fluent/fluentd-kubernetes-daemonset/releases/latest/fluentd-daemonset.yaml
fluentd-config),指定日志路径和过滤规则,例如仅收集ERROR级别日志。kubectl apply -f https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0.yaml
kubectl apply -f https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0.yaml
http://<kibana-service-ip>:5601,创建索引模式(如kubernetes-logs-*),构建日志统计图表。kubectl apply -f https://github.com/grafana/loki/releases/latest/deploy.yaml
promtail-config.yaml,指定Ubuntu容器日志路径(如/var/log/containers/*.log)。kubectl apply -f https://github.com/grafana/loki/releases/latest/loki.yaml
日志轮转与清理
logrotate工具限制日志文件大小和保留天数,避免磁盘占满。/etc/logrotate.d/kubernetes):/var/lib/docker/containers/*/*.log {
  rotate 7
  daily
  compress
  missingok
  postrotate
    systemctl restart docker
  endscript
}
权限与安全
kubectl logs -n kube-system <fluentd-pod-name>  # 查看Fluentd日志
curl -X GET "http://elasticsearch:9200/_cat/indices?v"  # 查看Elasticsearch索引
以上方案可根据集群规模和需求选择,EFK适合复杂分析场景,Loki适合轻量级监控,均支持Ubuntu容器日志的高效管理。