1.6. MultiClusterHub 高级配置
使用 MultiClusterHub operator 安装 Red Hat Advanced Cluster Management for Kubernetes,它会部署所有需要的组件。一些列出的组件会被默认启用。如果一个组件被禁用,则该资源不会在启用前部署到集群中。
Operator 的工作原理来部署以下组件:
| Name | 描述 | Enabled |
| app-lifecycle | 统一和简化用于构建和部署应用程序及应用程序更新的选项。 | True |
| cluster-backup | 为所有 hub 集群资源(如受管集群、应用程序和策略)提供备份和恢复支持。 | False |
| cluster-lifecycle | 为 OpenShift Container Platform 和 Red Hat Advanced Cluster Management hub 集群提供集群管理功能。 | True |
| cluster-permission | 自动将 RBAC 资源分发到受管集群并管理这些资源的生命周期。 | True |
| edge-manager-preview | 为边缘设备群启用用于声明性、GitOps 驱动的服务 | False |
| 控制台 | 启用 Red Hat Advanced Cluster Management Web 控制台插件。 | True |
| edge-manager-preview | 为边缘设备群启用用于声明性、GitOps 驱动的服务 | False |
| grc | 为集群定义策略启用安全增强。 | True |
| insights | 识别集群中的现有或潜在问题。 | True |
| multicluster-observability | 启用监控以深入了解受管集群的健康状态。 | True |
| search | 为所有集群中的 Kubernetes 资源提供可见性。 | True |
| SiteConfig | 使用模板和统一前端 API 启用大规模置备集群。 | False |
| submariner-addon | 启用环境中两个或多个受管集群(内部环境或云中)之间的直接网络和服务发现。 | True |
| volsync | 支持异步复制集群中的持久性卷,或使用存储类型不兼容进行复制的集群中。 | True |
将 Red Hat Advanced Cluster Management 安装到集群时,并非所有列出的组件都会默认启用。
您可以通过在 MultiClusterHub 自定义资源中添加一个或多个属性来进一步配置 Red Hat Advanced Cluster Management。继续读取以了解有关您可以添加的属性的信息。
1.6.1. 控制台和组件配置 复制链接链接已复制到粘贴板!
以下示例显示了可用于启用或禁用组件的 spec.overrides 默认模板:
-
使用项目的名称替换
namespace。 -
使用组件的名称替换
name。
或者,您可以运行以下命令。将 namespace 替换为项目的名称,将 name 替换为组件的名称:
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"<name>","enabled":true}}]'
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"<name>","enabled":true}}]'
注: 当禁用控制台组件时,Red Hat OpenShift Container Platform 控制台被禁用。
1.6.2. 自定义镜像 Pull Secret 复制链接链接已复制到粘贴板!
如果您计划导入不是由 OpenShift Container Platform 或 Red Hat Advanced Cluster Management 创建的 Kubernetes 集群,生成一个包含 OpenShift Container Platform pull secret 信息的 secret,以从发行 registry 中访问授权内容。
OpenShift Container Platform 集群的 secret 要求由 OpenShift Container Platform 和 Red Hat Advanced Cluster Management 自动解决,因此如果您没有导入其他类型的 Kubernetes 集群,则不必创建 secret。您的 OpenShift Container Platform pull secret 与您的 Red Hat Customer Portal ID 相关联,在所有 Kubernetes 供应商中都是相同的。
重要: 这些 secret 是特定于命名空间的,因此请确保处于用于 hub 集群的命名空间中。
- 进入 cloud.redhat.com/openshift/install/pull-secret 以下载 OpenShift Container Platform pull secret 文件。
- 点 Download pull secret。
运行以下命令来创建 secret:
oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson
oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
secret替换为您要创建的 secret 的名称。 -
将
namespace替换为项目命名空间,因为 secret 是特定于命名空间的。 -
将
path-to-pull-secret替换为您下载的 OpenShift Container Platform pull secret 的路径。
-
将
以下示例显示,如果使用自定义 pull secret,要使用的 spec.imagePullSecret 模板。将 secret 替换为 pull secret 的名称:
1.6.3. availabilityConfig 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Management hub 集群有两个可用功能: High 和 Basic。默认情况下,hub 集群的可用性为 High,hub 集群组件副本数 为 2。它提供了对故障转移功能的支持,但消耗的资源数量比可用性为 Basic(副本数为1) 的集群多。
重要: 如果您在单节点 OpenShift (SNO)集群中使用 multicluster engine operator,请将 spec.availabilityConfig 设置为 Basic。
以下示例显示了具有 Basic 可用性的 spec.availabilityConfig 模板:
1.6.4. nodeSelector 复制链接链接已复制到粘贴板!
您可以在 Red Hat Advanced Cluster Management hub 集群中定义一组节点选择器,以安装到集群中的特定节点。以下示例显示了将 Red Hat Advanced Cluster Management pod 分配给带有标签 node-role.kubernetes.io/infra 的节点的 spec.nodeSelector :
要为多集群引擎 operator hub 集群定义一组节点选择器,请参阅 multicluster engine operator 文档中的 nodeSelector。
1.6.5. 容限(tolerations) 复制链接链接已复制到粘贴板!
您可以定义容限列表,以便 Red Hat Advanced Cluster Management hub 集群可以容忍在集群中定义的特定污点。
以下示例显示了与 node-role.kubernetes.io/infra 污点匹配的 spec.tolerations :
默认情况下,以上 infra-node 容限在 pod 上设置,而不在配置中指定任何容限。在配置中自定义容限会替换这个默认值。
要为多集群引擎 operator hub 集群定义容限列表,请参阅 multicluster engine operator 文档中的 容限。
1.6.6. disableHubSelfManagement 复制链接链接已复制到粘贴板!
默认情况下,Red Hat Advanced Cluster Management hub 集群会自动导入,并且 hub 集群会进行自我管理。进行自我管理的中心集群被指定为本地集群。
如果disableHubSelfManagement字段设置为true (禁用本地集群功能),则可以更改spec.localClusterName名称。
如果disableHubSelfManagement字段设置为false (启用本地集群),则无法重命名本地集群。
<your-local-cluster-name>值必须使用 34 个或更少的字符。本地集群资源和命名空间反映了这一变化。
如果您不希望 Red Hat Advanced Cluster Management hub 集群管理自己,请将 spec. disableHubSelfManagement 的设置从 false 改为 true。
请参阅以下带有disableHubSelfManagement:true的 YAML 示例,该示例禁用本地集群设置。将 namespace 替换为项目的名称:
要启用默认的local-cluster ,请将设置返回为false 。您还可以删除此设置以返回默认行为,即中心集群将自身作为本地集群进行管理。
将disableHubSelfManagement选项设置为true并尝试手动管理 hub 集群会导致意外行为。
在管理多集群引擎操作员集群的 Red Hat Advanced Cluster Management 中心集群上,任何早期的手动配置都将被新配置取代。
1.6.7. disableUpdateClusterImageSets 复制链接链接已复制到粘贴板!
如果要确保所有集群都使用相同的发行镜像,您可以创建自己的自定义列表,以便在创建集群时可用的发行镜像。
在 连接到管理可用发行镜像时,请参阅维护自定义发行镜像列表,并设置 spec.disableUpdateClusterImageSets 属性,这将停止自定义镜像列表被覆盖。
以下示例显示了禁用集群镜像集更新的默认模板。将 namespace 替换为项目的名称:
1.6.8. customCAConfigmap (已弃用) 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenShift Container Platform 使用 Ingress Operator 创建内部 CA。
以下示例显示了用于为 Red Hat Advanced Cluster Management 提供自定义 OpenShift Container Platform 默认入口 CA 证书的默认模板。使用项目的名称替换 namespace。将 spec.customCAConfigmap 值替换为 ConfigMap 的名称:
1.6.9. sslCiphers (已弃用) 复制链接链接已复制到粘贴板!
默认情况下,Red Hat Advanced Cluster Management hub 集群包含所支持的 SSL 密码的完整列表。
以下示例显示了用于列出管理入口的 sslCiphers 模板的默认 spec.ingress.sslCiphers 模板。将 namespace 替换为项目的名称:
1.6.10. ClusterBackup 复制链接链接已复制到粘贴板!
enableClusterBackup 字段不再被支持,并被这个组件替代。
以下示例显示了用来启用 ClusterBackup 的 spec.overrides 默认模板。将 namespace 替换为项目的名称:
或者,您可以运行以下命令。使用项目的名称替换 namespace。
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"cluster-backup","enabled":true}}]'
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"cluster-backup","enabled":true}}]'