Azure 基于 Azure Monitor 提供一套完整的服务,用于监视 Kubernetes 基础结构的不同层的运行状况和性能,以及依赖于该服务的应用程序。 这些服务相互配合工作,为 在 Azure Kubernetes 服务(AKS)中运行的群集提供完整的监视解决方案。
你可能对 Cloud Native Computing Foundation 认可的云原生技术进行现有投资,或者你的组织可能使用替代工具来收集和分析 Kubernetes 日志,例如 Splunk 或 Datadog。 选择要部署的 Azure 工具及其配置将取决于特定环境的要求。 可以选择将现有监视解决方案迁移到 Azure Monitor 或将 Azure 服务集成到现有环境中。 例如,可以在其他云中使用 Azure 中用于 Prometheus 和 Grafana 的托管产品/服务,或者可以选择在 Azure 中将这些工具的现有安装与 Kubernetes 群集配合使用。
小窍门
本文介绍用于监视 Kubernetes 群集的运行状况和性能以及运行它们的工作负荷的 Azure Monitor 的功能。 有关如何配置这些服务以基于管理 Kubernetes 环境的典型角色监视 Kubernetes 环境的不同层的最佳做法,请参阅 使用 Azure Monitor 和云本机工具监视 Kubernetes 群集 。
Kubernetes 层
下面是从基础结构层到应用程序的典型 Kubernetes 环境的插图。 每个层都有不同的监视要求,这些要求由下面所述的不同 Azure 服务解决。
网络级别
支持传入和传出 Kubernetes 群集流量的虚拟网络组件使用以下服务进行监视。
服务 | Description |
---|---|
网络观察程序 | Azure 中的工具套件,用于监视 Kubernetes 群集使用的虚拟网络并诊断检测到的问题。 |
流量分析 | 网络监视器的功能,用于分析流日志,以提供流量分析见解。 |
网络见解 | Azure Monitor 的功能包括不同网络组件的性能和运行状况的直观表示形式,并提供对网络观察程序一部分的网络监视工具的访问权限。 |
容器级别
容器级别包括 Kubernetes 对象,例如部署、容器和副本集、群集控制平面组件(包括 API 服务器、云控制器和 kubelet),以及抽象为节点和节点池的虚拟机规模集。 这些层使用以下服务进行监视。
服务 | Description |
---|---|
适用于 Prometheus 的 Azure Monitor 托管服务 | Prometheus 是来自 Cloud Native Compute Foundation 的云原生指标解决方案,也是用于从 Kubernetes 群集收集和分析指标数据的最常见工具。 适用于 Prometheus 的 Azure Monitor 托管服务是一个完全托管的解决方案,与 Prometheus 查询语言(PromQL)和 Prometheus 警报兼容,并与 Azure Managed Grafana 集成,实现可视化。 此服务支持对开源工具的投资,而无需管理自己的 Prometheus 环境的复杂性。 |
容器日志收集 | 适用于 AKS 和已启用 Azure Arc 的 Kubernetes 群集的 Azure 服务,这些群集使用 Azure Monitor 代理 的容器化版本从群集中的每个节点收集 stdout/stderr 日志和 Kubernetes 事件。 在 Azure 门户中分析数据或使用 Log Analytics 对其进行查询。 |
控制平面日志收集 | 控制平面日志作为 Azure Monitor 中的 资源日志 实现。 创建 诊断设置 ,以在容器日志所在的 Log Analytics 工作区中收集这些日志。 |
已启用 Azure Arc 的 Kubernetes | 允许将 Azure 作为集中式控制平面附加到在本地或其他云中运行的 Kubernetes 群集。 安装 Arc 代理后,可以使用相同的方法和工具一起监视 AKS 和混合群集,包括收集容器日志 Prometheus 指标。 |
应用程序级别
使用以下服务监视 Kubernetes 群集上运行的应用程序工作负荷。
服务 | Description |
---|---|
Application Insights | Azure Monitor 的一项功能是提供应用程序性能监控(APM),以监控从开发、测试到生产环境中 Kubernetes 群集上运行的应用程序。 使用分布式跟踪快速识别和缓解延迟和可靠性问题。 支持 OpenTelemetry 进行供应商独立监测。 |
分析
Azure Monitor 提供了多个工具来分析其他功能收集的数据。 首先汇总环境中的所有群集,然后向下钻取到单个群集的交互式视图。 还可以利用各种可用的 Grafana 仪表板,这些仪表板结合了不同的 Kubernetes 遥测集。 对于主动通知,请基于 Prometheus 指标启用一组常见警报规则。
服务 | Description |
---|---|
统一监视仪表板 | Azure 门户中的统一监视仪表板合并了不同服务收集的数据,以便在单个屏幕上进行交互式分析。 获取不同群集的高级状态,然后向下钻取各个群集及其组件的详细信息。 |
Azure 托管 Grafana | Grafana 的完全托管实现,它是一个开源数据可视化平台,通常用于呈现 Prometheus 和其他数据。 可选择多种预定义的 Grafana 仪表板来监视 Kubernetes 并进行全堆栈故障排除。 |
使用 Grafana 的 Azure Monitor 仪表板(预览版) | 在 Azure 门户中演示 Grafana 仪表板,无需配置要求和成本。 如果不需要跨多个数据源的仪表板,请选择使用此功能,而不是 Managed Grafana。 |
后续步骤
- 有关配置 Azure Monitor 功能以监视 Kubernetes 环境的最佳做法和建议,请参阅 使用 Azure Monitor 和云本机工具监视 Kubernetes 群集 。
- 请参阅 “启用对 Kubernetes 群集的监视 ”,以便在群集上启用托管 Prometheus 和日志收集。