Menu Close

1.3.5. 通过 CLI 安装

OpenShift Container Platform Dedicated 环境只需要访问: 集群管理员,因为默认的 dedicated-admin 角色没有在 OpenShift Container Platform Dedicated 环境中创建命名空间所需的权限。您必须具有 cluster-admin 权限。

  1. 创建一个 hub 集群命名空间,其中包含 Operator 的要求。运行以下命令,其中 namespace 是 hub 集群命名空间的名称。在 OpenShift Container Platform 环境中,namespace 的值可能被称为 Project(项目)

    oc create namespace <namespace>
  2. 将项目命名空间切换到您创建的命名空间。使用在第 1 步中创建的 hub 集群命名空间的名称替换 namespace

    oc project <namespace>
  3. 如果您计划导入不是由 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 步中创建的命名空间中。

    1. 选择 Download pull secretcloud.redhat.com/openshift/install/pull-secret 下载 OpenShift Container Platform pull secret 文件。您的 OpenShift Container Platform pull secret 与您的 Red Hat Customer Portal ID 相关联,在所有 Kubernetes 供应商中都是相同的。
    2. 运行以下命令来创建 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 的路径。

  4. 创建一个 operator 组。每个命名空间只能有一个 operator 组。

    1. 创建定义 operator 组的 YAML 文件。文件内容应类似以下示例。将 default 替换为 operator 组的名称。将 namespace 替换为项目命名空间的名称:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <default>
      spec:
        targetNamespaces:
        - <namespace>
    2. 应用您创建的文件来定义 operator 组:

      oc apply -f <path-to-file><operator-group>.yaml

      operator-group 替换为您创建的 operator 组 YAML 文件的名称。

  5. 应用订阅。

    1. 创建定义订阅的 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
    2. 如果要在 infra 节点上安装以下内容:

      spec:
        config:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
          tolerations:
          - key: node-role.kubernetes.io/infra
            effect: NoSchedule
            operator: Exists
    3. 运行以下命令。使用您创建的订阅文件的名称替换 subscription
    oc apply -f <path-to-file><subscription>.yaml
  6. 应用 MultiClusterHub 自定义资源。

    1. 创建定义自定义资源的 YAML 文件。

      • 您的默认模板应当类似于以下示例。将 namespace 替换为项目命名空间的名称。如果您没有创建 pull secret,则不会显示它。如果这样做,将 secret 替换为本例的 pull secret 的名称:
      apiVersion: operator.open-cluster-management.io/v1
      kind: MultiClusterHub
      metadata:
        name: multiclusterhub
        namespace: <namespace>
      spec:
        imagePullSecret: <secret>
    2. 可选: 如果启用了安装程序管理的 acm-hive-openshift-releases 订阅,您可以通过将 disableUpdateClusterImageSets 设置为 true 来禁用订阅。
    3. 可选: 如有必要,禁用 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
    4. 使用以下命令应用自定义资源。将 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"
  7. 运行以下命令来获取自定义资源。在运行以下命令后,在最多 10 分钟内,MultiClusterHub 自定义资源状态会在 status.phase 字段中显示为 Running

    oc get mch -o=jsonpath='{.items[0].status.phase}'
  8. 状态变为 Running 后,查看查找路由的路由列表:

    oc get routes

如果您重新安装 Red Hat Advanced Cluster Management 但 pod 没有启动,请参阅故障排除重新安装失败以了解解决这个问题的步骤。