×

您可以使用基于代理的 OpenShift Container Platform 安装程序安装多集群引擎运算符并部署中心集群。以下过程部分自动化,在初始集群部署后需要手动步骤。

先决条件

在断开连接的情况下准备 Kubernetes 运算符的多集群引擎的基于代理的集群部署

您可以在断开连接的环境中将所需的 OpenShift Container Platform 容器镜像、多集群引擎运算符和本地存储运算符 (LSO) 镜像到您的本地镜像注册表中。确保您记下镜像注册表的本地 DNS 主机名和端口。

要将 OpenShift Container Platform 镜像仓库镜像到您的镜像注册表,您可以使用 oc adm release imageoc mirror 命令。在此过程中,oc mirror 命令用作示例。

步骤
  1. 创建一个 <assets_directory> 文件夹来包含有效的 install-config.yamlagent-config.yaml 文件。此目录用于存储所有资产。

  2. 要镜像 OpenShift Container Platform 镜像仓库、多集群引擎和 LSO,请创建一个包含以下设置的 ImageSetConfiguration.yaml 文件

    ImageSetConfiguration.yaml 示例
      kind: ImageSetConfiguration
      apiVersion: mirror.openshift.io/v1alpha2
      archiveSize: 4 (1)
      storageConfig: (2)
        imageURL: <your-local-registry-dns-name>:<your-local-registry-port>/mirror/oc-mirror-metadata (3)
        skipTLS: true
      mirror:
        platform:
          architectures:
            - "amd64"
          channels:
            - name: stable-4.17 (4)
              type: ocp
        additionalImages:
          - name: registry.redhat.io/ubi9/ubi:latest
        operators:
          - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.17 (5)
            packages: (6)
              - name: multicluster-engine (7)
              - name: local-storage-operator (8)
    1 指定镜像集中每个文件的最大大小(以 GiB 为单位)。
    2 设置接收镜像集元数据的后端位置。此位置可以是注册表或本地目录。需要指定 storageConfig 值。
    3 设置存储后端的注册表 URL。
    4 设置包含您要安装的版本的 OpenShift Container Platform 镜像的通道。
    5 设置包含您要安装的 OpenShift Container Platform 镜像的运算符目录。
    6 仅指定要包含在镜像集中的某些运算符包和通道。删除此字段以检索目录中的所有包。
    7 多集群引擎包和通道。
    8 LSO 包和通道。

    镜像内容时,oc mirror 命令需要此文件。

  3. 要镜像特定的 OpenShift Container Platform 镜像仓库、多集群引擎和 LSO,请运行以下命令

    $ oc mirror --dest-skip-tls --config ocp-mce-imageset.yaml docker://<your-local-registry-dns-name>:<your-local-registry-port>
  4. 更新 install-config.yaml 文件中的注册表和证书

    imageContentSources.yaml 示例
      imageContentSources:
        - source: "quay.io/openshift-release-dev/ocp-release"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release-images"
        - source: "quay.io/openshift-release-dev/ocp-v4.0-art-dev"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release"
        - source: "registry.redhat.io/ubi9"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/ubi9"
        - source: "registry.redhat.io/multicluster-engine"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/multicluster-engine"
        - source: "registry.redhat.io/rhel8"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/rhel8"
        - source: "registry.redhat.io/redhat"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/redhat"

    此外,请确保您的证书存在于 install-config.yamladditionalTrustBundle 字段中。

    install-config.yaml 示例
    additionalTrustBundle: |
      -----BEGIN CERTIFICATE-----
      zzzzzzzzzzz
      -----END CERTIFICATE-------

    oc mirror 命令创建一个名为 oc-mirror-workspace 的文件夹,其中包含多个输出。这包括识别您需要的所有 OpenShift Container Platform 和所选运算符镜像的 imageContentSourcePolicy.yaml 文件。

  5. 通过运行以下命令生成集群清单

    $ openshift-install agent create cluster-manifests

    此命令更新集群清单文件夹,以包含包含镜像配置的 mirror 文件夹。

在连接的情况下准备 Kubernetes 运算符的多集群引擎的基于代理的集群部署

创建多集群引擎运算符、本地存储运算符 (LSO) 和将基于代理的 OpenShift Container Platform 集群部署为中心集群所需的清单。

步骤
  1. <assets_directory> 文件夹中创建一个名为 openshift 的子文件夹。此子文件夹用于存储安装过程中将应用的额外清单,以进一步自定义已部署的集群。<assets_directory> 文件夹包含所有资产,包括 install-config.yamlagent-config.yaml 文件。

    安装程序不会验证额外的清单。

  2. 对于多集群引擎,请创建以下清单并将其保存到 <assets_directory>/openshift 文件夹中

    mce_namespace.yaml 示例
      apiVersion: v1
      kind: Namespace
      metadata:
        labels:
          openshift.io/cluster-monitoring: "true"
        name: multicluster-engine
    mce_operatorgroup.yaml 示例
      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: multicluster-engine-operatorgroup
        namespace: multicluster-engine
      spec:
        targetNamespaces:
        - multicluster-engine
    mce_subscription.yaml 示例
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: multicluster-engine
        namespace: multicluster-engine
      spec:
        channel: "stable-2.3"
        name: multicluster-engine
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    您可以使用 assisted installer (AI) 大规模安装分布式单元 (DU),使用 Red Hat Advanced Cluster Management (RHACM)。这些分布式单元必须在中心集群中启用。AI 服务需要持久卷 (PV),这些卷是手动创建的。

  3. 对于 AI 服务,请创建以下清单并将其保存到 <assets_directory>/openshift 文件夹中

    lso_namespace.yaml 示例
      apiVersion: v1
      kind: Namespace
      metadata:
        annotations:
          openshift.io/cluster-monitoring: "true"
        name: openshift-local-storage
    lso_operatorgroup.yaml 示例
      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: local-operator-group
        namespace: openshift-local-storage
      spec:
        targetNamespaces:
          - openshift-local-storage
    lso_subscription.yaml 示例
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: local-storage-operator
        namespace: openshift-local-storage
      spec:
        installPlanApproval: Automatic
        name: local-storage-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    创建所有清单后,您的文件系统必须显示如下

    文件系统示例
    <assets_directory>
        ├─ install-config.yaml
        ├─ agent-config.yaml
        └─ /openshift
            ├─ mce_namespace.yaml
            ├─ mce_operatorgroup.yaml
            ├─ mce_subscription.yaml
            ├─ lso_namespace.yaml
            ├─ lso_operatorgroup.yaml
            └─ lso_subscription.yaml
  4. 通过运行以下命令创建代理 ISO 镜像

    $ openshift-install agent create image --dir <assets_directory>
  5. 镜像准备就绪后,启动目标机器并等待安装完成。

  6. 要监控安装,请运行以下命令

    $ openshift-install agent wait-for install-complete --dir <assets_directory>

    要配置一个功能齐全的中心集群,您必须创建以下清单并通过运行命令 $ oc apply -f <manifest-name> 手动应用它们。清单创建的顺序很重要,并在需要时显示等待条件。

  7. 对于 AI 服务所需的 PV,请创建以下清单

      apiVersion: local.storage.openshift.io/v1
      kind: LocalVolume
      metadata:
       name: assisted-service
       namespace: openshift-local-storage
      spec:
       logLevel: Normal
       managementState: Managed
       storageClassDevices:
         - devicePaths:
             - /dev/vda
             - /dev/vdb
           storageClassName: assisted-service
           volumeMode: Filesystem
  8. 使用以下命令等待 PV 可用,然后再应用后续清单

    $ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m
    The `devicePath` is an example and may vary depending on the actual hardware configuration used.
  9. 为多集群引擎实例创建清单。

    MultiClusterEngine.yaml 示例
      apiVersion: multicluster.openshift.io/v1
      kind: MultiClusterEngine
      metadata:
        name: multiclusterengine
      spec: {}
  10. 创建一个清单以启用 AI 服务。

    agentserviceconfig.yaml 示例
      apiVersion: agent-install.openshift.io/v1beta1
      kind: AgentServiceConfig
      metadata:
        name: agent
        namespace: assisted-installer
      spec:
       databaseStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi
       filesystemStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi
  11. 创建一个清单以随后部署 spoke 集群。

    clusterimageset.yaml 示例
      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        name: "4.17"
      spec:
        releaseImage: quay.io/openshift-release-dev/ocp-release:4.17.0-x86_64
  12. 创建一个清单以将代理安装的集群(托管多集群引擎和辅助服务)作为中心集群导入。

    autoimport.yaml 示例
      apiVersion: cluster.open-cluster-management.io/v1
      kind: ManagedCluster
      metadata:
       labels:
         local-cluster: "true"
         cloud: auto-detect
         vendor: auto-detect
       name: local-cluster
      spec:
       hubAcceptsClient: true
  13. 等待托管集群创建。

    $ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m
验证
  • 要确认托管集群安装成功,请运行以下命令

    $ oc get managedcluster
    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS             JOINED   AVAILABLE  AGE
    local-cluster   true           https://<your cluster url>:6443   True     True       77m
其他资源