使用 Azure Policy 和 Azure Monitor 管理已启用 Azure Arc 的 Kubernetes

已完成

Azure Arc 通过启用各种 Azure 服务(例如 Azure Policy 和 Azure Monitor)来集中和简化管理。

在本单元中,你将了解如何使用这些服务来管理和监视已启用 Azure Arc 的 Kubernetes 群集。

Azure Policy

Azure Policy 根据目标资源类型(包括 Kubernetes 群集及其组件)的属性使用声明性规则。 这些规则构成了策略定义,管理员可通过策略分配将这些定义应用于资源组、订阅或管理组。

适用于 Kubernetes 的 Azure Policy

借助适用于 Kubernetes 的 Azure Policy,公司可以在其所有已启用 Azure Arc 的 Kubernetes 群集上强制实施统一的治理规则,以检测任何不符合组织标准的内容。

已启用 Arc 的 Kubernetes 的 Azure Policy 扩展执行以下操作:

  • 定期检查针对托管准入控制器 Pod 的 Kubernetes 群集的 Azure Policy 分配。
  • 将策略定义作为应用约束的自定义资源部署到群集中,准入控制器 Pod 将强制执行这些约束。
  • 将审核和合规性数据报告给 Azure Policy,以便可以通过 Azure 门户查看状态,这与其他 Azure 或已启用 Azure Arc 的资源类似。

已启用 Arc 的 Kubernetes 的内置策略定义

Azure Policy 为已启用 Azure Arc 的 Kubernetes 提供了许多内置定义,包括以下常用的策略定义:

策略名称 策略说明
Kubernetes 群集不应允许特权容器 阻止在群集中创建特权容器。
Kubernetes 群集应只可通过 HTTPS 进行访问 确保将 HTTPS 用于入口连接。
Kubernetes 群集服务只应使用允许的外部 IP 确保仅使用允许的外部 IP 地址。
Kubernetes 群集容器 CPU 和内存资源限制不得超过指定的限制 强制实施容器 CPU 和内存资源限制。
Kubernetes 群集服务应只侦听允许的端口 限制服务,使其只侦听允许的端口。
Kubernetes 群集容器应只使用允许的映像 将可用于部署容器的映像限制为仅来自受信任注册表的映像。
Kubernetes 群集容器只应使用允许的功能 限制功能以减少容器的攻击面。
Kubernetes 群集 Pod 只应使用批准的主机网络和端口范围 限制 Pod 对群集中主机网络和允许的主机端口范围的访问。

还有更多可用的内置策略定义。 若要查看所有策略定义,请在 Azure 门户中搜索并选择“策略”,在左侧菜单中选择“定义”,然后在“类别”下拉列表中选择“Kubernetes”。

实现适用于 Kubernetes 的 Azure Policy

若要在连接的群集上实现适用于 Kubernetes 的 Azure Policy,需要安装 Azure Policy 扩展。 对于已启用 Azure Arc 的 Kubernetes,该过程包括以下概要步骤。

  1. 使用有权管理已启用 Arc 的 Kubernetes 资源的帐户登录到 Microsoft Entra 租户。
  2. 在群集上创建 Azure Policy 扩展实例。
  3. 使用特定于 Kubernetes 的策略定义之一创建策略分配。

创建策略分配后,Azure Policy 将开始检查合规性。

Azure Monitor

Azure Monitor 可将基于云的全面管理功能从 Azure 扩展到本地数据中心以及非 Microsoft 云提供商。 Monitor 从 Azure 服务、已启用 Arc 的资源、本地数据中心和第三方云资源收集和监视指标、活动和诊断日志以及事件。

Azure Monitor 界面包含以下功能:

  • 仪表板和工作簿。
  • 使用指标资源管理器或 Power BI 等工具进行指标分析。
  • 指定警报触发操作和警报接收者的常见操作组。

Azure Monitor 容器见解

Azure Monitor 容器见解提供对 Kubernetes 环境状态的全面见解,有助于保持运营稳定性和业务连续性。 指标在 Kubernetes 环境中的控制器、节点和容器上收集,包括已启用 Azure Arc 的 Kubernetes。

容器见解提供以下功能:

  • 标识每个群集节点上运行的容器及其平均处理器和内存利用率,以帮助检测资源瓶颈。
  • 标识各个 Pod 中运行的容器,以帮助跟踪 Pod 的整体性能。
  • 评估主机上运行的工作负载的资源利用率,该主机与支持 Pod 的标准进程无关。
  • 比较群集在平均负载和最繁重负载下的行为,以帮助评估容量需求,以及估计群集可承受的最大负载。
  • 配置警报,以在资源利用率超过可接受的阈值或在群集中发生运行状况状态更改时主动通知你。

监视已启用 Azure Arc 的 Kubernetes 群集

Azure Monitor 容器见解依赖于 Azure Monitor Linux 代理的容器化版本。 此代理在受监视的群集中运行,以从群集节点和容器中收集性能指标和日志。 该代理直接与 Kubernetes 指标 API 交互,并将收集的数据上传到 Azure。

为已启用 Azure Arc 的 Kubernetes 部署实现 Azure Monitor 容器见解的过程包含以下概要步骤。

  1. 使用有权管理已启用 Arc 的 Kubernetes 资源的帐户登录到 Microsoft Entra 租户。
  2. 识别要使用的 Log Analytics 工作区的工作区 ID。
  3. 使用 Log Analytics 工作区 ID 在群集上创建 Azure Monitor 容器见解扩展实例。