使用 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 Arc 启用的资源一样,通过 Azure 门户查看其状态。
已启用 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,此过程包括以下高级步骤。
- 使用有权管理已启用 Arc 的 Kubernetes 资源的帐户登录到 Microsoft Entra 租户。
- 在群集上创建 Azure Policy 扩展实例。
- 使用 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 容器见解依赖于适用于 Linux 的 Azure Monitor 代理的容器化版本。 此代理在受监视的群集中运行,从群集节点和容器收集性能指标和日志。 代理直接与 Kubernetes 指标 API 交互,并将收集的数据上传到 Azure。
为已启用 Azure Arc 的 Kubernetes 部署实现 Azure Monitor 容器见解的过程包括以下高级步骤。
- 使用有权管理已启用 Arc 的 Kubernetes 资源的帐户登录到 Microsoft Entra 租户。
- 识别要使用的 Log Analytics 工作区的工作区 ID。
- 使用 Log Analytics 工作区 ID 在群集上创建 Azure Monitor 容器见解扩展实例。