1.4.5. 通过 CLI 安装


Red Hat OpenShift Dedicated 环境只需要访问:集群管理员,作为默认的 dedicated-admin 角色没有在 Red Hat OpenShift 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 自我管理。默认情况下,hub 集群会自动由自身导入和管理,与其他集群一样。如果您不希望 hub 集群管理自己,将 disableHubSelfManagement 的设置从 false 改为 true

      如果您创建了 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-file><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 没有启动,请参阅对安装失败进行故障排除以了解解决这个问题的步骤。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.