Menu Close
1.3.5. 通过 CLI 安装
OpenShift Container Platform Dedicated 环境只需要访问: 集群管理员,因为默认的 dedicated-admin
角色没有在 OpenShift Container Platform Dedicated 环境中创建命名空间所需的权限。您必须具有 cluster-admin
权限。
创建一个 hub 集群命名空间,其中包含 Operator 的要求。运行以下命令,其中
namespace
是 hub 集群命名空间的名称。在 OpenShift Container Platform 环境中,namespace
的值可能被称为 Project(项目)。oc create namespace <namespace>
将项目命名空间切换到您创建的命名空间。使用在第 1 步中创建的 hub 集群命名空间的名称替换
namespace
。oc project <namespace>
如果您计划导入不是由 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。重要:这些 secret 是特定于命名空间的,因此请确保处于在第 1 步中创建的命名空间中。
- 选择 Download pull secret 从 cloud.redhat.com/openshift/install/pull-secret 下载 OpenShift Container Platform pull secret 文件。您的 OpenShift Container Platform pull secret 与您的 Red Hat Customer Portal ID 相关联,在所有 Kubernetes 供应商中都是相同的。
运行以下命令来创建 secret:
oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson
将
secret
替换为您要创建的 secret 的名称。将namespace
替换为项目命名空间,因为 secret 是特定于命名空间的。将path-to-pull-secret
替换为您下载的 OpenShift Container Platform pull secret 的路径。
创建一个 operator 组。每个命名空间只能有一个 operator 组。
创建定义 operator 组的 YAML 文件。文件内容应类似以下示例。将
default
替换为 operator 组的名称。将namespace
替换为项目命名空间的名称:apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: <default> spec: targetNamespaces: - <namespace>
应用您创建的文件来定义 operator 组:
oc apply -f <path-to-file><operator-group>.yaml
将
operator-group
替换为您创建的 operator 组 YAML 文件的名称。
应用订阅。
创建定义订阅的 YAML 文件。文件内容应类似以下示例:
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: acm-operator-subscription spec: sourceNamespace: openshift-marketplace source: redhat-operators channel: release-2.3 installPlanApproval: Automatic name: advanced-cluster-management
如果要在 infra 节点上安装以下内容:
spec: config: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - key: node-role.kubernetes.io/infra effect: NoSchedule operator: Exists
-
运行以下命令。使用您创建的订阅文件的名称替换
subscription
:
oc apply -f <path-to-file><subscription>.yaml
应用 MultiClusterHub 自定义资源。
创建定义自定义资源的 YAML 文件。
-
您的默认模板应当类似于以下示例。将
namespace
替换为项目命名空间的名称。如果您没有创建 pull secret,则不会显示它。如果这样做,将secret
替换为本例的 pull secret 的名称:
apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: name: multiclusterhub namespace: <namespace> spec: imagePullSecret: <secret>
-
您的默认模板应当类似于以下示例。将
-
可选: 如果启用了安装程序管理的
acm-hive-openshift-releases
订阅,您可以通过将disableUpdateClusterImageSets
设置为true
来禁用订阅。 可选: 如有必要,禁用 hub 自助管理。默认情况下,Red Hat Advanced Cluster Management hub 集群由其自身自动导入和管理。此 受管 hub 集群命名为
local-cluster
。如果您不希望 Red Hat Advanced Cluster Management hub 集群自己管理,您需要将
disableHubSelfManagement
的设置从false 改为
true
。如果设置没有包含在定义自定义资源的 YAML 文件中,则需要添加它。hub 集群只能使用这个选项进行管理。将这个选项设置为
true
,并尝试手动管理 hub 会导致意外的行为。如果您创建了 pull secret 并启用了
disableHub selfManagement
功能,则默认模板应类似以下示例。将namespace
替换为项目命名空间的名称。将secret
替换为 pull secret 的名称:apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: name: multiclusterhub namespace: <namespace> spec: imagePullSecret: <secret> disableHubSelfManagement: true
使用以下命令应用自定义资源。将
custom-resource
替换为自定义资源文件的名称:oc apply -f <path-to-path><custom-resource>.yaml
如果此步骤失败并显示以下错误,则仍然会创建并应用这些资源。创建资源后几分钟内再次运行命令:
error: unable to recognize "./mch.yaml": no matches for kind "MultiClusterHub" in version "operator.open-cluster-management.io/v1"
运行以下命令来获取自定义资源。在运行以下命令后,在最多 10 分钟内,
MultiClusterHub
自定义资源状态会在status.phase
字段中显示为Running
:oc get mch -o=jsonpath='{.items[0].status.phase}'
状态变为
Running
后,查看查找路由的路由列表:oc get routes
如果您重新安装 Red Hat Advanced Cluster Management 但 pod 没有启动,请参阅故障排除重新安装失败以了解解决这个问题的步骤。