Kubernetes 是一个高度动态的容器编排系统,有效监控它对维护性能、可靠性和安全至关重要。Kubernetes 的可观察性确保高可用性和系统的最佳性能。由于 Kubernetes 环境动态且分布式,有效监控部署、Pod 和系统指标需要全面的可观察性方法。这包括跟踪实时指标、日志和追踪,以了解应用程序和基础设施组件的行为。 在此了解更多关于 Kubernetes 监控的信息。
本指南涵盖如何执行 Kubernetes 监控 针对指标和部署进行深入探讨,使用本地工具 (kubectl,Metrics Server) 和第三方解决方案 (Prometheus,Grafana,ManageEngine Applications Manager).
Kubernetes 环境本质上是短暂且复杂的。工作负载不断创建、扩展和销毁。此动态性加上微服务架构的分布式特性,需要强大的可观察性策略。缺乏策略将导致:
为缓解这些风险并确保 Kubernetes 部署的顺利运行,必须拥抱可观察性的三大支柱:
结合这些元素,DevOps 团队可以检测异常、排查问题并优化性能。
指标提供了对 Kubernetes 环境的实时、量化视图。Kubernetes 提供多种内置和外部工具以捕获指标。以下是获取 Kubernetes 指标的几种方法:
Metrics Server 是一个轻量级的集群内资源使用数据聚合器,适用于:
使用以下 bash 脚本:
Kubernetes 通过 Metrics Server 暴露关键资源使用数据。以下是获取资源使用的部分命令:
kubectl top nodes: Node CPU/memory usage.kubectl top pods --all-namespaces: Pod CPU/memory usage.kubectl describe pod <pod-name>: Detailed pod info (resource requests/limits).kubectl get pods --all-namespaces: Pod status list.Metrics Server 不存储历史数据,限制了其对长期趋势分析的适用性。
Prometheus 是 Kubernetes 指标监控的事实标准,因其提供:
使用 Helm 部署 Prometheus:
验证安装:
kubectl get pods -n monitoring
访问 Prometheus 仪表盘:
kubectl port-forward svc/prometheus-server 9090:80 -n monitoring
| 查询 | 描述 |
|---|---|
up{job="kubernetes-nodes"} | 检查节点可用性。 |
sum(rate(node_cpu_seconds_total{mode="user"}[5m])) by (node) | 计算每个节点的 CPU 使用率。 |
sum(kube_pod_container_status_restarts_total) by (pod, namespace) | 跟踪 Pod 重启次数。 |
histogram_quantile(0.95, rate(http_server_requests_seconds[5m])) | 测量 95 百分位请求延迟。 |
为简化 Kubernetes 监控 体验,ManageEngine Applications Manager 提供预配置仪表盘和 AI 驱动的异常检测,避免了手动配置 Prometheus 的复杂性。
观察 Kubernetes 部署有两种方法:

可以使用以下命令实时观察 Kubernetes 部署:
| 命令 | 描述 |
|---|---|
kubectl get deployments --all-namespaces | 列出所有部署。 |
kubectl describe deployment <deployment-name> | 描述特定部署。 |
kubectl rollout status deployment <deployment-name> | 监控滚动更新。 |
kubectl logs -f <pod-name> | 查看详细 Pod 日志。 |
结合 Grafana 的可视化能力和 Prometheus 的指标收集,可深入了解 Kubernetes 部署。以下是获取 Kubernetes 部署可视化报告的步骤:
通过 Helm 安装 Grafana:
访问仪表盘:
ManageEngine Applications Manager 可直接集成 Kubernetes,实现实时部署可视化和异常监控。它通过与 Prometheus 无缝集成,允许摄取现有 Prometheus 指标并与其他 IT 基础设施数据集中管理,提供预构建仪表盘、AI 驱动的异常检测减少警报疲劳及关联能力加速排障,同时支持 Kubernetes 资源的自动发现并保持供应商中立,简化了 Kubernetes 的可观察性,无需复杂的独立 Prometheus 配置。
日志对于调试、排查问题和深入了解应用内部工作机制至关重要。有效的日志可观察性对于识别部署失败、定位性能瓶颈和维护 Kubernetes 环境整体健康非常关键。以下是两种日志观察方法:
Kubernetes 命令行工具 kubectl 提供直接访问 Pod 日志的功能,是检查应用行为的快速高效方式。
| 命令 | 目的 | 用例 |
|---|---|---|
kubectl logs <pod-name> | 获取指定 Pod 中主容器的日志。该命令适合快速检查单个应用进程的输出。 | 快速诊断单容器 Pod 中的问题,检查应用初始化消息,或监视特定进程的输出。 |
kubectl logs <pod-name> --all-containers | 聚合并显示指定 Pod 中所有容器的日志。适用于调试包含多个 sidecar 容器或紧密交互微服务的复杂 Pod。 | 排查多容器间的交互问题,检查 sidecar 容器(例如日志代理、服务网格)的日志,或分析多组件应用的行为。 |
对于大规模 Kubernetes 部署,集中日志聚合解决方案不可或缺。EFK 堆栈(Fluentd、Elasticsearch、Kibana)提供了强大且可扩展的日志管理与分析平台。
在微服务架构中,请求遍历多个服务,分布式追踪对于理解请求流和定位性能瓶颈不可或缺。
Jaeger 是领先的开源追踪解决方案,可视化请求路径并识别微服务间的延迟问题。
实施步骤:
通过 Helm 安装 Jaeger:
访问 Jaeger UI:
ManageEngine Applications Manager 简化了追踪过程。避免安装配置 Jaeger 和 SDK 埋点的复杂性。Applications Manager 提供集成的分布式追踪,简化微服务的可观察性。
总之,有效的 Kubernetes 可观察性不是一次性设置,而是持续监控、分析和优化的过程。通过拥抱三大支柱并利用合适的工具,您可以保障 Kubernetes 部署的健康、性能和安全。
说实话,手动配置上述可观察性指南非常繁琐。对于寻求简化、无忧碍 Kubernetes 监控 解决方案,提供主动洞察和运营效率的企业,ManageEngine Applications Manager 是一个强大且直观的平台。它旨在减轻复杂 Kubernetes 监控设置的负担,提供一套强大功能,带来即时价值和长期收益。其核心功能包括:
通过正确的可观察性策略,组织能够主动检测问题,优化资源利用,并保持 Kubernetes 基础设施的弹性。
凭借直观的界面、强大的警报功能和灵活的部署选项,Applications Manager 使组织能够减少停机时间,提升运营效率,并提供卓越的用户体验。无论您管理的是本地、云端还是混合环境,Applications Manager 都能简化 IT 监控的复杂性。
使用 Applications Manager 提升您的 Kubernetes 监控水平。 立即下载 体验不同,或 安排个性化演示 获得专人导览。