Kubernetes在Debian上的监控与日志管理指南
监控是保障Kubernetes集群稳定运行的核心,以下是适合Debian环境的常用工具及实施步骤:
使用kubectl可快速查看集群基础状态,覆盖节点、Pod、Service等核心资源:
kubectl get nodes(显示节点是否处于Ready状态);kubectl get pods --all-namespaces(确认Pod是否正常运行);kubectl describe deployment <deployment-name> -n <namespace>(获取Deployment的副本数、更新状态等详细信息);kubectl logs <pod-name> -n <namespace>(实时查看Pod内容器的日志输出)。Prometheus是开源的时间序列数据库,Grafana是可视化工具,二者结合可实现集群资源的深度监控与仪表盘展示:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring),该方式会自动部署Prometheus Server、Node Exporter(节点资源监控)、Kube State Metrics(集群状态指标)等组件;prometheus.yml文件,添加Kubernetes服务、Pod的抓取配置(如scrape_configs中配置job_name: 'kubernetes-pods',通过kubernetes_sd_configs自动发现Pod);helm install grafana prometheus-community/kube-prometheus-stack -n monitoring),登录Grafana(默认地址http://<grafana-service-ip>:3000,账号admin/admin),添加Prometheus作为数据源,并导入Kubernetes官方仪表盘(如Kubernetes Cluster Monitoring)。Metrics Server是轻量级的资源指标收集器,为Kubernetes提供CPU、内存等资源的聚合数据,支持kubectl top命令:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml部署,部署后可通过kubectl top nodes、kubectl top pods查看节点和Pod的资源使用情况。Node Exporter是Prometheus的采集器,用于收集节点的CPU、内存、磁盘、网络等硬件指标,通常以DaemonSet形式部署在每个节点:
kubectl apply -f https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter.yml部署,部署后可通过http://<node-ip>:9100/metrics访问节点指标。Kube-State-Metrics监听Kubernetes API Server,生成集群资源对象(如Deployment、Pod、Service)的状态指标(如副本数、可用性、事件),补充了Metrics Server的资源指标:
kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml部署,部署后可通过http://<kube-state-metrics-ip>:8081/metrics访问状态指标。日志是故障排查的关键依据,以下是适合Debian环境的日志管理策略及工具:
/var/log/containers/*.log)。例如,Fluentd的DaemonSet配置文件(fluentd-ds.yaml)需指定Elasticsearch的地址(FLUENT_ELASTICSEARCH_HOST),并通过kubectl apply -f fluentd-ds.yaml部署;logrotate工具对容器日志进行轮转,避免单个日志文件过大占用磁盘空间。Kubernetes默认会为每个容器生成日志文件(位于/var/log/containers/),可通过修改/etc/logrotate.d/kubernetes文件配置轮转策略(如每天轮转、保留7天)。helm install kibana elastic/kibana -n logging),登录Kibana(默认地址http://<kibana-service-ip>:5601),配置Elasticsearch为数据源,即可创建日志仪表盘(如按命名空间、Pod筛选日志)。/var/log/containers/目录),并对Elasticsearch启用TLS加密(避免日志传输过程中被窃取);