你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Kubernetes 群集治理
治理是指组织能够强制实施和验证规则以确保符合公司标准的能力。 治理可帮助组织降低风险、遵守公司标准和外部法规,并最大限度地减少对采用或创新的干扰。
治理包括规划计划、设置战略优先级以及使用机制和流程来控制应用程序和资源。 对于云环境中的 Kubernetes 群集,治理意味着在 Kubernetes 群集以及这些群集中运行的应用程序之中实施策略。
Kubernetes 治理包括云环境和群集部署基础结构,以及群集本身及其应用程序。 本指南重点介绍 Kubernetes 群集内的治理。 本文描述并比较了 Amazon Elastic Kubernetes 服务 (Amazon EKS) 和 Azure Kubernetes 服务 (AKS) 如何管理 Kubernetes 群集治理。
注意
本文是系列文章之一,可帮助熟悉 Amazon EKS 的专业人员了解 Azure Kubernetes 服务 (AKS)。
Kubernetes 治理维度
三个维度定义一致的 Kubernetes 治理策略:
目标描述治理策略应满足的安全性和合规性策略目标。 例如,目标指定哪些用户可以访问 Kubernetes 群集、命名空间或应用程序,或者哪些容器注册表和映像用于哪些群集。 安全运营团队通常将这些目标设置为定义公司治理策略的第一步。
范围详细说明目标策略所应用于的元素。 范围必须处理所有 Kubernetes 可见组件。 范围可以是部门、团队和组等组织单位,也可以是云、区域或命名空间等环境,或者两者兼而有之。
策略指令使用 Kubernetes 功能在指定范围内强制执行目标规则,从而强制实施治理策略。
有关详细信息,请参阅 Kubernetes 治理,应了解的内容。
EKS 和 AKS 中的治理
Amazon Web Services (AWS) 客户通常使用 Kyverno、Gatekeeper 或其他第三方解决方案为其 Amazon EKS 群集定义和实施治理策略。 aws-eks-best-practices/policies GitHub 存储库包含 Kyverno 和 Kyverno 的示例策略集合。
Azure 客户也可以使用 Kyverno 或 Gatekeeper,并且可以使用适用于 Kubernetes 的 Azure Policy 加载项扩展 Gatekeeper 以实施 AKS 治理策略。
守护程序
云原生计算基金会 (CNCF) 赞助适用于 Kubernetes 的开源 Gatekeeper 策略控制器,用于在 Kubernetes 群集中强制实施策略。 Gatekeeper 是一个 Kubernetes 许可控制器,用于强制实施使用 Open Policy Agent (OPA)(一种常规用途策略引擎)创建的策略。
OPA 使用一种名为 Rego 的高级声明性语言来创建策略,这些策略可以在不同的实例上或以不同的优先级运行来自租户的 Pod。 有关常见 OPA 策略的集合,请参阅 OPA Gatekeeper 库。
Kyverno
CNCF 还赞助 Kyverno 开源项目,用于在 Kubernetes 群集中强制实施策略。 Kyverno 是一个 Kubernetes 原生策略引擎,可使用策略验证、更改和生成 Kubernetes 资源配置。
使用 Kyverno,无需使用新语言即可定义策略并将其作为 Kubernetes 资源进行管理。 此方法允许使用熟悉的工具(如 kubectl、git 和 kustomize)来管理策略。
Kyverno 使用 kustomize
样式覆盖进行验证,支持 JSON 修补程序和战略合并修补程序进行更改,并且可以基于灵活的触发器跨命名空间克隆资源。 可使用 YAML 清单单独部署策略,也可使用 Helm 图表打包和部署策略。
与 Gatekeeper 或适用于 AKS 的 Azure Policy 不同,Kyverno 可以使用策略生成新的 Kubernetes 对象,而不仅仅是验证或更改现有资源。 例如,可定义 Kyverno 策略以自动为任何新命名空间创建默认网络策略。
有关详细信息,请参阅官方 Kyverno 安装指南。 有关现成策略或可自定义策略的列表,请参阅 Kyverno 策略库。 有关故障排除参考(如 APIServer 调用 webhook 失败),请参阅 Kyverno 故障排除文档。
(可选)可将 Kyverno 的 Kubernetes Pod 安全标准 (PSS) 实现部署为 Kyverno 策略。 PSS 控制为一般 Kubernetes 群集操作安全性提供了一个起点。
用于 AKS 的 Azure Policy 加载项
适用于 AKS 的 Azure Policy 加载项扩展了 Gatekeeper,以集中、一致的方式对 AKS 群集应用大规模强制措施和安全措施。 Azure Policy 支持从单个位置对多个 Kubernetes 群集进行集中式合规性管理和报告。 为每个群集部署和管理 Kyverno 或 Gatekeeper 相比,此功能使多群集环境的管理和治理更高效。
适用于 AKS 的 Azure Policy 加载项强制执行以下功能:
- 检查 Azure Policy 服务对群集的策略分配。
- 将策略定义作为约束模板部署到群集中,并约束自定义资源。
- 向 Azure Policy 服务报告审核和合规性详细信息。
Azure Policy 加载项支持 AKS 和已启用 Azure Arc 的 Kubernetes 群集环境。 有关详细信息,请参阅了解适用于 Kubernetes 群集的 Azure Policy。 要在新群集和现有群集上安装加载项,请参阅安装适用于 AKS 的 Azure Policy 加载项。
安装适用于 AKS 的 Azure Policy 加载项后,可将各个策略定义或策略定义组(称为计划)应用于 AKS 群集。 可以从一开始就应用并强制实施 Azure Policy 内置策略和计划定义,也可以创建和分配自己的自定义策略定义。 Azure Policy 内置安全策略有助于改善 AKS 群集的安全状况、强制执行组织标准并大规模评估合规性。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Martin Gjoshevski | 高级服务工程师
- Paolo Salvatori | 首席服务工程师
其他参与者:
- Chad Kittel | 首席软件工程师
- Ed Price | 高级内容项目经理
- Theano Petersen | 技术文档撰写人
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 适用于 Amazon EKS 专业人员的 AKS
- Kubernetes 标识和访问管理
- Kubernetes 监视和日志记录
- 保护对 Kubernetes 的网络访问
- Kubernetes 群集的存储选项
- Kubernetes 的成本管理
- Kubernetes 节点和节点池管理