你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 ✔️ 配备中心群集的车队管理器
本文概述了 Azure Kubernetes Fleet Manager 的托管机群命名空间,这些命名空间提供集中管理的多群集多租户解决方案。
重要
Azure Kubernetes 舰队管理器预览功能可以通过自助服务方式选择性启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 客户支持部门会尽力为 Azure Kubernetes 舰队管理器预览功能提供部分支持。 因此,这些功能并不适合用于生产。
什么是托管机群命名空间?
在目标成员群集上部署时,托管机群命名空间允许平台管理员应用资源配额、网络策略、标签、注释和控制对每个群集上命名空间资源的访问。 托管舰队命名空间扩展了托管 Kubernetes 命名空间的功能,提供了一种在单个 AKS 群集中逻辑隔离工作负载的方法。
托管舰队命名空间使用生成的只读舰队管理器群集资源放置 (CRP) 将集中定义的命名空间传播到所选成员群集。
创建机群托管命名空间时,还可以控制:
- 采用策略:定义当放置托管舰队命名空间的成员群集中存在同名的非托管命名空间或托管 Kubernetes 命名空间时,如何解决冲突。
- 删除策略:定义是否在删除托管机群命名空间 Azure 资源时删除 Kubernetes 资源。
设置资源配额
平台管理员可以使用 资源配额 来限制命名空间级别的 CPU 和内存消耗。 如果省略,则不会向命名空间应用任何资源配额。
- CPU 请求和限制:设置命名空间中工作负荷可以请求或使用的最小和最大 CPU 资源。
- 内存请求和限制:设置命名空间中工作负荷可以请求或使用的最小和最大内存资源。
注释
为命名空间设置的配额将单独应用于每个单独的成员群集,而不是在运行命名空间的所有群集之间共享。
设置网络策略
网络策略 控制命名空间中 Pod 允许的流量。 可以独立选择三个内置网络策略之一用于入口和出口流量。 如果省略,则不会对命名空间应用任何网络策略。
网络策略分别应用于每个群集,并且不控制命名空间的跨群集网络流量。 每个成员群集在其本地命名空间实例中独立地强制实施自己的网络策略。 网络策略包括:
- 允许所有流量:允许所有网络流量,包括 Pod 与外部终结点之间的流量。
- 允许同一命名空间:允许同一命名空间中的 Pod 之间的所有网络流量。
- 拒绝全部:拒绝所有网络流量,包括 Pod 与外部终结点之间的流量。
注释
托管机群命名空间设置默认网络策略,但具有足够权限的命名空间用户可以添加额外的策略来放宽命名空间的整体网络策略。 此行为与 Kubernetes 网络策略的标准累加行为匹配。
标签和批注
可以将 Kubernetes 标签 和注释应用于托管机群命名空间。 默认情况下,每个托管命名空间都有一个内置标签,指示它由 ARM 管理。
采纳政策
创建托管舰队命名空间时,采用策略决定现有的非托管或托管 Kubernetes 命名空间已经存在于目标群集上时如何对其进行处理。 可以使用以下选项:
- 从不:如果群集中已存在同名的命名空间,则托管命名空间创建会失败。
- IfIdentical:如果群集中已存在同名的命名空间,则托管命名空间创建会失败,除非命名空间相同。 如果命名空间相同,Fleet Manager 将接管要管理的现有命名空间。
- 始终:托管命名空间始终接管现有命名空间,即使命名空间中的某些资源被覆盖。
采用期间,托管机群命名空间可以接管成员群集上现有命名空间上的字段,但它不会从命名空间中删除资源。
删除策略
删除策略控制着删除托管舰队命名空间 Azure 资源时如何处理 Kubernetes 命名空间。 有两个内置选项:
-
保留:使 Kubernetes 命名空间在成员群集上保持不变,但会删除
ManagedByARM标签。 - 删除:从成员群集中删除 Kubernetes 命名空间及其中的所有资源。
警告
删除策略“ 删除 ”会完全从目标成员群集中删除 Kubernetes 命名空间资源和其中的资源,即使它以前存在并由托管机队命名空间采用。
托管舰队命名空间内置角色
托管舰队命名空间使用现有的 Azure 基于角色的访问控制 (RBAC) 控制平面角色来管理和访问托管命名空间。 现有 数据平面 RBAC 角色 应用于与在 Fleet Manager 中心群集上创建的托管车队命名空间实例进行交互。
重要
在托管机群命名空间范围内分配 RBAC 角色时,会向成员群集上具有相同名称的任何非托管 Kubernetes 命名空间授予访问权限。
若要控制对成员群集上的托管机群命名空间的访问,请使用可在命名空间范围内应用的以下内置角色:
| 角色 | Description |
|---|---|
| 适用于成员群集的 Azure Kubernetes Fleet Manager RBAC 读取器 | • 对成员群集上命名空间中大多数对象的只读访问权限。 • 无法查看角色或角色绑定。 • 无法查看机密(阻止通过 ServiceAccount 凭据提升特权)。 |
| 适用于成员群集的 Azure Kubernetes Fleet Manager RBAC 编写器 | • 对命名空间中大多数 Kubernetes 资源的读取和写入访问权限。 • 无法查看或修改角色或角色绑定。 • 可以读取机密(并且可以假定 ServiceAccount 命名空间中的任何机密)。 |
| Azure Kubernetes 舰队管理器成员群集 RBAC 管理员 | • 对成员群集上命名空间中的 Kubernetes 资源的读取和写入访问权限。 |
| Azure Kubernetes 舰队管理器成员群集 RBAC 群集管理员 | • 对成员群集上所有 Kubernetes 资源的完全读/写访问权限。 |
例如,在使用team-A管理机群命名空间的team-A开发人员需要在 Fleet Manager 的主机集群命名空间内读取和写入 Kubernetes 资源。 开发人员还需要读取成员群集上存在的 team-A 命名空间中的 Kubernetes 对象。 因此,平台管理员会在机群范围内为其分配 Azure Kubernetes Fleet Manager RBAC 编写器 ,并在托管 机群命名空间范围内为成员群集分配 Azure Kubernetes Fleet Manager RBAC 读取器 ,以满足这些各自的要求。
在预览版期间,这些角色不支持 Kubernetes 自定义资源 (CR) 的访问控制。
后续步骤
- 了解如何 创建和使用托管机群命名空间。
- 了解如何 查看和访问你有权访问的托管机群命名空间