1.5. MultiClusterHub 高级配置
Red Hat Advanced Cluster Management for Kubernetes 会使用一个会部署所有需要的组件的 operator 进行安装。通过在 MultiClusterHub 自定义资源中添加一个或多个以下属性,可以在安装过程中或安装后进一步配置 Red Hat Advanced Cluster Management:
1.5.1. 自定义镜像 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.5.2. availabilityConfig 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Management hub 集群有两个可用功能: High 和 Basic。默认情况下,hub 集群的可用性为 High,hub 集群组件副本数 为 2。它提供了对故障转移功能的支持,但消耗的资源数量比可用性为 Basic(副本数为1) 的集群多。
以下示例显示了具有 Basic 可用性的 spec.availabilityConfig 模板:
1.5.3. nodeSelector 复制链接链接已复制到粘贴板!
您可以在 Red Hat Advanced Cluster Management hub 集群中定义一组节点选择器,以安装到集群中的特定节点。以下示例显示了将 Red Hat Advanced Cluster Management pod 分配给带有标签 node-role.kubernetes.io/infra 的节点的 spec.nodeSelector :
1.5.4. 容限(tolerations) 复制链接链接已复制到粘贴板!
您可以定义容限列表,以便 Red Hat Advanced Cluster Management hub 集群可以容忍在集群中定义的特定污点。
以下示例显示了与 node-role.kubernetes.io/infra 污点匹配的 spec.tolerations :
默认情况下,以上 infra-node 容限在 pod 上设置,而不在配置中指定任何容限。在配置中自定义容限会替换这个默认值。
1.5.5. disableHubSelfManagement 复制链接链接已复制到粘贴板!
默认情况下,Red Hat Advanced Cluster Management hub 集群会自动导入和管理。此 受管 hub 集群名为 local-cluster。
如果您不希望 Red Hat Advanced Cluster Management hub 集群管理自己,请将 spec. disableHubSelfManagement 的设置从 false 改为 true。如果该设置没有包括在定义自定义资源的 YAML 文件中,请添加它。hub 集群只能通过这个选项进行管理。
将这个选项设置为 true 并尝试手动管理 hub,会导致意外行为。
以下示例显示,如果要禁用 hub 集群自助管理功能,要使用的默认模板。将 namespace 替换为项目的名称:
1.5.6. disableUpdateClusterImageSets 复制链接链接已复制到粘贴板!
如果要确保所有集群都使用相同的发行镜像,您可以创建自己的自定义列表,以便在创建集群时可用的发行镜像。
在 连接到管理可用发行镜像时,请参阅维护自定义发行镜像列表,并设置 spec.disableUpdateClusterImageSets 属性,这将停止自定义镜像列表被覆盖。
以下示例显示了禁用集群镜像集更新的默认模板。将 namespace 替换为项目的名称:
1.5.7. customCAConfigmap 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenShift Container Platform 使用 Ingress Operator 创建内部 CA。
以下示例显示了用于为 Red Hat Advanced Cluster Management 提供自定义 OpenShift Container Platform 默认入口 CA 证书的默认模板。使用项目的名称替换 namespace。将 spec.customCAConfigmap 值替换为 ConfigMap 的名称:
1.5.8. sslCiphers 复制链接链接已复制到粘贴板!
默认情况下,Red Hat Advanced Cluster Management hub 集群包含所支持的 SSL 密码的完整列表。
以下示例显示了用于列出管理入口的 sslCiphers 模板的默认 spec.ingress.sslCiphers 模板。将 namespace 替换为项目的名称:
1.5.9. ClusterProxy 附加组件(技术预览) 复制链接链接已复制到粘贴板!
以下示例显示了用来启用 cluster-proxy-addon 的默认 spec.overrides 模板。将 namespace 替换为项目的名称:
或者,您可以运行以下命令。将 namespace 替换为项目的名称:
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"cluster-proxy-addon","enabled":true}}]'
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"cluster-proxy-addon","enabled":true}}]'
使用 enableClusterProxyAddon 字段不再被支持,它被上方命令替代。
1.5.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}}]'
1.5.11. ManagedServiceAccount 附加组件(技术预览) 复制链接链接已复制到粘贴板!
以下示例显示了用来启用 ManagedServiceAccount 的 spec.overrides 默认模板。将 namespace 替换为项目的名称:
或者,您可以运行以下命令。使用项目的名称替换 namespace。
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"managedserviceaccount-preview","enabled":true}}]'
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"managedserviceaccount-preview","enabled":true}}]'
1.5.12. Hypershift 附加组件(技术预览) 复制链接链接已复制到粘贴板!
以下示例显示了用来启用 Hypershift 的 spec.overrides 默认模板。将 namespace 替换为项目的名称:
或者,您可以运行以下命令。使用项目的名称替换 namespace。
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"hypershift-preview","enabled":true}}]'
oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"hypershift-preview","enabled":true}}]'