1.2. 关于多集群引擎 operator 的集群生命周期
multicluster engine for Kubernetes operator 是集群生命周期 Operator,它为 Red Hat OpenShift Container Platform 和 Red Hat Advanced Cluster Management hub 集群提供集群管理功能。如果安装了 Red Hat Advanced Cluster Management,则不需要安装 multicluster engine operator,因为它会被自动安装。
有关支持信息以及以下文档,请参阅 Kubernetes operator 2.2 的多集群引擎支持列表 :
要继续,请参阅与多集群引擎 operator 的集群生命周期中剩余的集群生命周期文档。
1.2.1. 要求和建议
在安装 multicluster engine operator 前,请查看以下系统配置要求和设置:
1.2.1.1. 支持的浏览器和平台
请参阅 multicluster engine for Kubernetes operator 2.2 支持的浏览器和功能的重要信息。
1.2.1.2. 网络配置
重要: 可信 CA 捆绑包在 multicluster engine operator 命名空间中可用,但该增强需要更改您的网络。可信 CA 捆绑包 ConfigMap 使用 trusted-ca-bundle
的默认名称。您可以通过在名为 TRUSTED_CA_BUNDLE
的环境变量中提供 Operator 来更改此名称。如需更多信息,请参阅 Red Hat OpenShift Container Platform 的网络部分中的配置集群范围代理。
注:在受管集群中的注册代理
和工作代理
不支持代理设置,因为它们通过建立 mTLS 连接与 hub 集群上的 apiserver
通信,该连接无法通过代理进行。
将您的网络设置配置为允许以下的连接:
1.2.1.2.1. multicluster engine operator 网络要求
有关 multicluster engine operator 集群网络要求,请查看下表:
方向 | 连接 | 端口(如果指定) |
---|---|---|
出站 | 置备的受管集群的 Kubernetes API 服务器 | 6443 |
出站和入站 |
受管集群上的 | 443 |
入站 | 来自受管集群的 Kubernetes 集群的多集群引擎的 Kubernetes API 服务器 | 6443 |
1.2.2. 控制台概述
OpenShift Container Platform 控制台插件包括在 OpenShift Container Platform 4.10 web 控制台中,并可集成。要使用这个功能,必须启用控制台插件。Multicluster engine operator 在 Infrastructure 和 Credentials 导航项中显示某些控制台功能。如果安装了 Red Hat Advanced Cluster Management,您会看到更多的控制台功能。
注: 对于启用插件的 OpenShift Container Platform 4.10,您可以从 OpenShift Container Platform 控制台下拉菜单中选择 All Clusters 来访问 OpenShift Container Platform 控制台中的 Red Hat Advanced Cluster Management。
- 要禁用插件,请确保处于 OpenShift Container Platform 控制台的 Administrator 视角中。
- 在导航中找到 Administration,再点 Cluster Settings,然后点 Configuration 选项卡。
-
从 Configuration resources 列表中,点带有
operator.openshift.io
API 组的 Console 资源,其中包含 web 控制台的集群范围配置。 -
点 Console 插件 选项卡。
mce
插件被列出。注: 如果安装了 Red Hat Advanced Cluster Management,它也会被列为acm
。 - 从表中修改插件状态。几分钟后,会提示您输入刷新控制台。
1.2.3. multicluster engine operator 基于角色的访问控制
RBAC 在控制台和 API 一级进行验证。控制台中的操作可根据用户访问角色权限启用或禁用。查看以下部分以了解有关产品中特定生命周期的 RBAC 的更多信息:
1.2.3.1. 角色概述
有些产品资源是基于集群范围的,有些则是命名空间范围。您必须将集群角色绑定和命名空间角色绑定应用到用户,以使访问控制具有一致性。查看支持的以下角色定义表列表:
1.2.3.1.1. 角色定义表
角色 | 定义 |
---|---|
|
这是 OpenShift Container Platform 的默认角色。具有集群范围内的绑定到 |
|
具有集群范围内的绑定到 |
|
具有集群范围内的绑定到 |
|
具有集群范围内的绑定到 |
|
具有集群范围内的绑定到 |
|
具有集群范围内的绑定到 |
|
admin、edit 和 view 是 OpenShift Container Platform 的默认角色。具有命名空间范围绑定的用户可以访问特定命名空间中的 |
重要:
- 任何用户都可以从 OpenShift Container Platform 创建项目,这为命名空间授予管理员角色权限。
-
如果用户无法访问集群的角色,则无法看到集群名称。集群名称显示有以下符号:
-
。
RBAC 在控制台和 API 一级进行验证。控制台中的操作可根据用户访问角色权限启用或禁用。查看以下部分以了解有关产品中特定生命周期的 RBAC 的更多信息。
1.2.3.2. 集群生命周期 RBAC
查看以下集群生命周期 RBAC 操作:
为所有受管集群创建和管理集群角色绑定。例如,输入以下命令创建到集群角色
open-cluster-management:cluster-manager-admin
的集群角色绑定:oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin --user=<username>
这个角色是一个超级用户,可访问所有资源和操作。您可以创建集群范围的
managedcluster
资源、用于管理受管集群的资源的命名空间,以及使用此角色的命名空间中的资源。您可能需要添加需要角色关联的 ID用户名
,以避免权限错误。运行以下命令,为名为
cluster-name
的受管集群管理集群角色绑定:oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>
此角色对集群范围的
managedcluster
资源具有读写访问权限。这是必要的,因为managedcluster
是一个集群范围的资源,而不是命名空间范围的资源。输入以下命令,创建到集群角色
admin
的命名空间角色绑定:oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin --user=<username>
此角色对受管集群命名空间中的资源具有读写访问权限。
为
open-cluster-management:view:<cluster-name>
集群角色创建一个集群角色绑定,以查看名为cluster-name
的受管集群,输入以下命令:oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>
此角色具有对集群范围的
managedcluster
资源的读取访问权限。这是必要的,因为managedcluster
是一个集群范围的资源。输入以下命令,创建到集群角色
view
的命名空间角色绑定:oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view --user=<username>
此角色对受管集群命名空间中的资源具有只读访问权限。
输入以下命令来查看您可以访问的受管集群列表:
oc get managedclusters.clusterview.open-cluster-management.io
此命令供没有集群管理员特权的管理员和用户使用。
输入以下命令来查看您可以访问的受管集群集列表:
oc get managedclustersets.clusterview.open-cluster-management.io
此命令供没有集群管理员特权的管理员和用户使用。
1.2.3.2.1. 集群池 RBAC
查看以下集群池 RBAC 操作:
作为集群管理员,通过创建受管集群集并使用集群池置备集群,并通过向组添加角色来授予管理员权限。请参见以下示例:
使用以下命令为
server-foundation-clusterset
受管集群集授予admin
权限:oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-admin
使用以下命令为
server-foundation-clusterset
受管集群授予view
权限:oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-user
为集群池
server-foundation-clusterpool
创建命名空间。查看以下示例以授予角色权限:运行以下命令,为
server-foundation-team-admin
授予server-foundation-clusterpool
的admin
权限:oc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpool
作为团队管理员,在集群池命名空间中创建一个名为
ocp46-aws-clusterpool
的集群池,带有集群设置标签cluster.open-cluster-management.io/clusterset=server-foundation-clusterset
:-
server-foundation-webhook
检查集群池是否有集群设置标签,以及用户是否有权在集群集中创建集群池。 -
server-foundation-controller
为server-foundation-team-user
授予对server-foundation-clusterpool
命名空间的view
权限。
-
创建集群池时,集群池会创建一个
clusterdeployment
。继续阅读以获取更多详细信息:-
server-foundation-controller
为server-foundation-team-admin
授予对clusterdeployment
命名空间的admin
权限。 server-foundation-controller
为server-foundation-team-user
授予对clusterdeployment
名空间的view
权限。注 :作为
team-admin
和team-user
,您有clusterpool
、clusterdeployment
和clusterclaim
的admin
权限
-
1.2.3.2.2. 集群生命周期的控制台和 API RBAC 表
查看以下集群生命周期控制台和 API RBAC 表:
资源 | Admin | Edit | View |
---|---|---|---|
Clusters | read、update、delete | - | 读取 |
集群集 | get、update、bind、join | 未提及 edit 角色 | get |
受管集群 | read、update、delete | 未提及 edit 角色 | get |
AWS 供应商连接。 | create、read、update 和 delete | - | 读取 |
API | Admin | Edit | View |
---|---|---|---|
对于这个 API 您可以使用 | 创建、读取、更新、删除 | 读取、更新 | 读取 |
对于这个 API 您可以使用 | 读取 | 读取 | 读取 |
| update | update | |
对于这个 API 您可以使用 | 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 读取 | 读取 | 读取 |
对于这个 API 您可以使用 | 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
| 创建、读取、更新、删除 | 读取、更新 | 读取 |
1.2.3.2.3. 基于角色的凭证访问控制
对凭证的访问由 Kubernetes 控制。凭据作为 Kubernetes secret 存储和保护。以下权限适用于在 Red Hat Advanced Cluster Management for Kubernetes 中访问 secret:
- 有权在命名空间中创建 secret 的用户可以创建凭证。
- 有权读取命名空间中的 secret 的用户也可以查看凭证。
-
具有 Kubernetes 集群角色
admin
和edit
的用户可以创建和编辑 secret。 -
具有 Kubernetes 集群角色
view
的用户无法查看 secret,因为读取 secret 的内容可以访问服务帐户凭证。