你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Kubernetes 监视和日志记录

Azure Kubernetes 服务 (AKS)
Azure Log Analytics
Azure Monitor

本文介绍 Azure Kubernetes 服务 (AKS) 监视与 Amazon Elastic Kubernetes 服务 (Amazon EKS) 的比较。 本文将指导您使用不同的选项来监视和管理 AKS 群集及其工作负载的日志。

注意

本文是系列文章之一,可帮助熟悉 Amazon EKS 的专业人员了解 Azure Kubernetes 服务 (AKS)

Amazon EKS 监视和日志记录

与任何 Kubernetes 服务一样,EKS 有两个主要组件,即控制平面和工作器节点。 每个层都有特定的功能。

Amazon EKS 控制平面和群集监视

Amazon EKS 与 Amazon CloudWatch 日志 集成,为 Amazon EKS 控制平面提供日志记录和监视。 默认情况下不会启用此集成,但配置后便会收集以下方面的日志:

  • API 服务器和 API 调用。
  • 审核日志和用户交互。
  • 验证器日志。
  • 计划程序和控制器日志。

Amazon EKS 以 Prometheus 文本格式在 /metrics 终结点公开控制平面指标。 CloudWatch 容器见解可以收集和存储 Prometheus 指标。 您可以在 EKS 群集之上部署和自我管理的 Prometheus,也可以使用适用于 Prometheus 的 Amazon 托管服务

Amazon EKS 还与 Amazon Web Services (AWS) CloudTrail 集成以跟踪操作和 API 调用。 有关更多信息,请参阅使用 AWS CloudTrail 记录 Amazon EKS API 调用

Amazon EKS 工作负载监视

CloudWatch Container Insights 可以从部署在 EKS 中的容器化应用程序收集和汇总指标和日志。 可以使用 CloudWatch 代理的容器化版本或使用 AWS Distro for OpenTelemetry 作为 DaemonSet 在 Amazon EKS 上实施 Container Insights。 可以使用 FluentBit 发送日志。

AKS 监视和日志记录

如其他 Azure 资源一样,AKS 会生成平台指标和资源日志,你可使用它们来监视其运行状况和性能。

显示 AKS 日志记录和监视的图表。

下载此体系结构的 Visio 文件

Azure Monitor

AKS 与 Azure Monitor 以本机方式集成。 Azure Monitor 将指标和日志存储在名为 Log Analytics 工作区的中心位置。 系统将处理和分析此数据以提供见解和警报。 有关详细信息,请参阅使用 Azure Monitor 监控 Azure Kubernetes 服务 (AKS)

Container Insights 是 Azure Monitor 的一项功能,用于收集、索引和存储 AKS 群集生成的数据。 可以配置 Container Insights 以监视托管在 AKS 和其他群集配置上的托管 Kubernetes 群集。 Container Insights 可以通过针对 Kubernetes 环境量身定制的可视化来监视 AKS 运行状况和性能。 与 EKS 类似,为 AKS 群集启用 Container Insights 会部署 Log Analytics 代理的容器化版本,该代理负责将数据发送到 Log Analytics 工作区。

Microsoft Sentinel

Microsoft Sentinel 跨企业提供智能安全分析和威胁情报。 借助 Microsoft Sentinel,可以获取攻击检测、威胁可见性、主动搜寻和威胁响应的单一解决方案。

Microsoft Sentinel 必须与 AKS 连接。 使用此连接器可将 Azure Kubernetes 服务 (AKS) 诊断日志流式传输到 Microsoft Sentinel 中,便于持续监视所有实例中的活动。

将数据源连接到 Microsoft Sentinel 后,可以使用使用 Microsoft Sentinel 和 Azure Monitor 工作簿来可视化和监视数据,这在创建自定义仪表板方面提供了多样性。

AKS 群集和工作负载监视

AKS 部署可以分为群集级别组件、托管 AKS 组件、Kubernetes 对象和工作负载、应用程序和外部资源。 下表显示了用于监视 AKS 群集和工作负载应用程序的常用策略。 每个级别都有不同的监视要求。

Level 说明 监视要求
群集级别组件 抽象为 AKS 节点和节点池的虚拟机规模集 节点状态和资源利用率,包括 CPU、内存、磁盘和网络
托管 AKS 组件 AKS 控制平面组件,包括 API 服务器、云控制器和 kubelet kube-system 命名空间中的控制平面日志和指标
Kubernetes 对象和工作负载 Kubernetes 对象,例如部署、容器和副本集 资源利用率和故障
应用程序 AKS 群集上运行的应用程序工作负载 特定于体系结构的监视,但包括应用程序日志和服务事务
外部 外部资源,它们不属于 AKS,但是群集可伸缩性和管理所必需的 特定于每个组件
  • 群集级别组件:可以使用现有的 Container Insights 视图和报表来监视群集级别组件,以了解其运行状况、就绪情况、性能、CPU 和内存资源利用率以及趋势。

  • 托管 AKS 组件:可以使用指标资源管理器查看进行中的请求计数器。 此视图包括请求延迟和工作队列处理时间。

  • Kubernetes 对象和工作负载:可以使用现有的 Container Insights 视图和报告来监控部署、控制器、pod 和容器。 使用节点控制器视图查看在节点和控制器上运行的 Pod 的运行状况和性能,以及它们在 CPU 和内存方面的资源消耗。

从 Container Insights 的容器视图中,你可以查看容器的运行状况和性能,或者选择单个容器,然后实时监视其事件和日志。 若要详细了解如何使用此视图并分析容器的运行状况和性能,请参阅使用容器见解监视 Kubernetes 群集性能

  • 应用程序:可以使用 Application Insights 监视在 AKS 和其他环境中运行的应用程序。 Application Insights 是一种应用程序性能管理工具,为许多编程语言提供支持。 根据你的需要,你可以检测应用程序代码以捕获请求、跟踪、日志、异常、自定义指标和端到端事务,并将这些数据发送到 Application Insights。 如果你有 Java 应用程序,则可以在不检测代码的情况下提供监视。 有关详细信息,请参阅 Kubernetes 的零检测应用程序监视

  • 外部组件:可以使用 Azure Monitor 功能来监视工作负载应用程序使用的任何 Azure 平台即服务 (PaaS),例如数据库和其他 Azure 资源。

适用于 Prometheus 的 Azure Monitor 托管服务

Prometheus 是 Cloud Native Compute Foundation 推出的一款流行的开源指标监控解决方案,也是用于从 Kubernetes 群集收集和分析指标数据的最常用工具。 适用于 Prometheus 的 Azure Monitor 托管服务是 Azure 中与 Prometheus 兼容的完全托管监视解决方案,它将其数据存储在链接到 Grafana 工作区Azure Monitor 工作区中,以便你可以使用 Azure 托管 Grafana 分析数据。

Prometheus 也可以作为 Azure Kubernetes 服务群集中的自托管解决方案独立部署。 可以将自托管 Prometheus 与 Azure Monitor 集成。 容器见解可配置为收集 Prometheus 指标。 你可以通过导出程序或 Pod 应用程序公开 Prometheus 指标终结点,容器见解的容器化代理即可抓取指标。

Microsoft 托管 Grafana

Azure 托管 Grafana 是基于 Grafana 构建的数据可视化平台。 它构建为由 Microsoft 运营和支持的完全托管的 Azure 服务。 可选择多种预定义的 Grafana 仪表板来监视 Kubernetes 并进行全堆栈故障排除。

Azure 托管 Grafana 针对 Azure 环境进行了优化,可与许多 Azure 服务配合使用,并提供简单的集成功能。 或者,也可以将 Grafana 独立部署为自托管解决方案。 有关详细信息,请参阅在 Grafana 中监视 Azure 服务

AKS 监视成本

Azure Monitor 定价模型主要基于 Log Analytics 工作区中每天引入的数据量。 费用因你选择的计划和保留期而异。

在启用 Container Insights 之前,请估算成本并了解如何控制数据引入及其成本。 有关详细指导,请参阅估算用于监视 AKS 群集的成本

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤