你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文比较 Azure Kubernetes 服务(AKS)监控和 Amazon Elastic Kubernetes 服务(EKS)监控。 其中介绍了可用于监视和管理 AKS 群集及其工作负载日志的选项。
注释
本文是一系列文章的一部分,可帮助熟悉 Amazon EKS 的专业人员了解 Azure Kubernetes 服务(AKS)。
Amazon EKS 监视和日志记录
与其他 Kubernetes 服务一样,Amazon 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 中部署的容器化应用程序收集并聚合指标和日志。 若要在 Amazon EKS 上实现 Container Insights,请使用 CloudWatch 代理的容器化版本,或使用 AWS Distro for OpenTelemetry 作为 DaemonSet。 可以使用 Fluent Bit 发送日志。
AKS 监视和日志记录
如其他 Azure 资源一样,AKS 会生成平台指标和资源日志,你可使用它们来监视其运行状况和性能。
下载此体系结构的 Visio 文件。
Azure Monitor
AKS 与 Azure Monitor 以本机方式集成。 Azure Monitor 将指标和日志存储在名为 Log Analytics 工作区的中心位置。 Azure Monitor 处理和分析指标和日志,以提供见解和警报。 有关详细信息,请参阅 使用 Azure Monitor 监视 AKS。
容器见解 是 Azure Monitor 的一项功能,用于收集、索引和存储 AKS 群集生成的数据。 您可以配置容器监控以监视 AKS 上托管的 Kubernetes 群集。 还可以监视其他群集配置。 容器见解监视 AKS 运行状况和性能,并通过针对 Kubernetes 环境定制的可视化效果呈现这些数据。 与 EKS 类似,为 AKS 群集启用容器见解时,它会部署 Log Analytics 代理的容器化版本。 代理将数据发送到 Log Analytics 工作区。
容器见解使用 Log Analytics 工作区 中的数据为 Azure 门户中的可视化效果提供支持。 请考虑切换到 Prometheus 的 Azure Monitor 托管服务,该服务为指标收集提供更便宜、更高效的方法。 通过仅使用托管的 Prometheus 数据,你可以使用容器见解来显示指标。 有关详细信息,请参阅切换到托管 Prometheus 可视化以获取容器见解。
为了帮助确保对 Kubernetes 群集进行全面监视,请使用以下服务和 Azure Monitor 功能:
- 用于有效收集指标的适用于 Prometheus 的托管服务
- 用于收集日志的容器见解
- 高级可视化功能的 Azure 托管 Grafana
Microsoft Sentinel
Microsoft Sentinel 跨企业提供智能安全分析和威胁情报。 Microsoft Sentinel 为攻击检测、威胁可见性、主动搜寻和威胁响应提供了单一解决方案。
必须使用 AKS 连接器将Microsoft Sentinel 连接到 AKS。 然后,可以将 AKS 诊断日志流式传输到 Microsoft Sentinel,以持续监视实例中的活动。
将数据源连接到 Microsoft Sentinel 后,可以 可视化和监视数据。 Microsoft Sentinel 和 Azure Monitor 工作簿提供多功能性来创建自定义仪表板。
AKS 群集和工作负载监视
AKS 部署由群集级组件、托管 AKS 组件、Kubernetes 对象和工作负载、应用程序和外部资源组成。 监视 AKS 群集和工作负荷应用程序的常见策略包括以下监视要求。
级别 | DESCRIPTION | 监视要求 |
---|---|---|
群集级组件 | 虚拟机规模集表示 AKS 节点和节点池 | 节点状态和资源使用情况,包括 CPU、内存、磁盘和网络 |
托管 AKS 组件 | AKS 控制平面组件,包括 API 服务器、云控制器和 kubelet |
kube-system 命名空间中的控制平面日志和指标 |
Kubernetes 对象和工作负载 | Kubernetes 对象,例如应用部署、容器和复制集 | 资源使用情况和故障 |
应用程序 | 在 AKS 群集上运行的应用程序工作负荷 | 针对架构的专门监控,包括应用程序日志和服务处理 |
外部 | 外部资源,它们不属于 AKS,但是群集可伸缩性和管理所必需的 | 特定于每个组件 |
群集级组件: 可以使用现有的容器见解视图和报表来监视群集级组件,以了解其运行状况、就绪情况、性能、CPU 和内存资源使用情况以及趋势。
托管 AKS 组件: 可以使用 Azure Monitor 指标资源管理器查看 Inflight Requests 计数器。 此视图包括请求延迟和工作队列处理时间。
Kubernetes 对象和工作负载: 可以使用现有的容器见解视图和报表来监视部署、控制器、Pod 和容器。 使用 节点 和 控制器 视图查看在节点和控制器上运行的 Pod 的运行状况和性能。 还可以在 CPU 和内存方面查看其资源消耗情况。
容器见解 容器 视图显示容器的运行状况和性能。 或者,可以选择单个容器,并实时监视其事件和日志。 有关详细信息,请参阅 使用容器见解监视 Kubernetes 群集性能。
应用: 可以使用 Application Insights 监视 AKS 和其他环境中运行的应用程序。 Application Insights 是一种应用程序性能管理工具,为许多编程语言提供支持。 根据需求,可以检测应用程序代码以捕获请求、跟踪、日志、异常、自定义指标和端到端事务。 然后,可以将此数据发送到 Application Insights。 如果你有 Java 应用程序,则可以在不检测代码的情况下提供监视。 有关详细信息,请参阅 AKS 的自动检测。
外部组件:可以使用 Azure Monitor 功能监视工作负荷应用程序使用的 Azure 平台即服务(PaaS)解决方案,例如数据库和其他 Azure 资源。
适用于 Prometheus 的 Azure Monitor 托管服务
Prometheus 是 Cloud Native Computing Foundation 中常用的开源指标监视解决方案。 Prometheus 从 Kubernetes 群集收集和分析指标数据。 适用于 Prometheus 的 Azure Monitor 托管服务 是 Azure 中完全托管的 Prometheus 兼容监视解决方案。 它将数据存储在Azure Monitor 工作区中,该工作区链接到 Azure 托管的 Grafana 工作区。 可以使用 Azure 托管 Grafana 分析数据。
可以在 AKS 群集中独立部署 Prometheus 作为自托管解决方案。 若要将自托管 Prometheus 与 Azure Monitor 集成,请配置容器见解以收集 Prometheus 指标。 可以通过导出程序或 Pod 应用程序公开 Prometheus 指标终结点。 容器洞察的集装箱化代理程序收集这些指标。
Azure 托管 Grafana
Azure 托管 Grafana 是基于 Grafana 构建的数据可视化平台。 它是由 Microsoft 运营和支持的全托管 Azure 服务。 Azure 托管版 Grafana 提供预定义的 Grafana 仪表板,用于监控 Kubernetes 以及进行全栈故障排除。
Azure 托管 Grafana 针对 Azure 环境进行了优化,适用于许多 Azure 服务,并提供简单的集成功能。 您还可以将 Grafana 部署为独立的自托管解决方案。 有关详细信息,请参阅在 Grafana 中监视 Azure 服务。
AKS 监视成本
Azure Monitor 定价模型主要基于 Log Analytics 工作区每天引入的数据量。 成本因所选计划和保留期而异。
在启用容器见解之前,请估算成本,并了解如何控制数据引入及其成本。 有关详细信息,请参阅 估算监视 AKS 群集的成本。
供稿人
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- Paolo Salvatori | 首席服务工程师
- Ketan Chawda | 高级客户工程师
- 劳拉·尼古拉斯 |高级云解决方案架构师
其他参与者:
- 查德·基特尔 |首席软件工程师 - Azure 模式和做法
- Ed Price | 高级内容项目经理
- Theano Petersen | 技术文档撰写人
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 使用 Azure Monitor 专用链接范围
- 启用对 Kubernetes 群集的监视
- 从容器见解查询日志
- 适用于 Grafana 的 Azure Monitor 数据源
- 培训:监视和备份 Azure 资源
- 培训:使用 Application Insights 排查解决方案中的问题
- 培训:设计用于记录和监视 Azure 资源的解决方案
- 培训:Azure Monitor 基础知识