22.2. 为 ZTP 准备 hub 集群


要在断开连接的环境中使用 RHACM,请创建一个镜像 registry,镜像 OpenShift Container Platform 发行镜像和包含所需 Operator 镜像的 Operator Lifecycle Manager (OLM) 目录。OLM 在集群中管理、安装和升级 Operator 及其依赖项。您还可以使用断开连接的镜像主机来提供用于置备裸机主机的 RHCOS ISO 和 RootFS 磁盘镜像。

22.2.1. Telco RAN 4.11 验证的解决方案软件版本

Red Hat Telco Radio Access Network (RAN) 版本 4.11 解决方案已使用以下红帽软件产品版本进行验证。

表 22.2. Telco RAN 4.11 验证的解决方案软件
产品软件版本

hub 集群 OpenShift Container Platform 版本

4.11

GitOps ZTP 插件

4.9、4.10 或 4.11

Red Hat Advanced Cluster Management (RHACM)

2.5 或 2.6

Red Hat OpenShift GitOps

1.5

Topology Aware Lifecycle Manager (TALM)

4.10 或 4.11

22.2.2. 在断开连接的环境中安装 GitOps ZTP

在断开连接的环境中,使用 Red Hat Advanced Cluster Management (RHACM)、Red Hat OpenShift GitOps 和 Topology Aware Lifecycle Manager (TALM) 来管理多个受管集群的部署。

先决条件

  • 已安装 OpenShift Container Platform CLI (oc)。
  • 您已以具有 cluster-admin 权限的用户身份登录。
  • 您已配置了断开连接的镜像 registry 以在集群中使用。

    注意

    您创建的断开连接的镜像 registry 必须包含 TALM backup 和 pre-cache 镜像的版本,该镜像与 hub 集群中运行的 TALM 版本匹配。spoke 集群必须能够在断开连接的镜像 registry 中解析这些镜像。

流程

22.2.3. 在断开连接的镜像主机中添加 RHCOS ISO 和 RootFS 镜像

在使用 Red Hat Advanced Cluster Management (RHACM) 在断开连接的环境中安装集群前,您必须首先托管 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像供其使用。使用断开连接的镜像来托管 RHCOS 镜像。

先决条件

  • 部署和配置 HTTP 服务器以托管网络上的 RHCOS 镜像资源。您必须能够从计算机以及您创建的机器访问 HTTP 服务器。
重要

RHCOS 镜像可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。您需要 ISO 和 RootFS 镜像在主机上安装 RHCOS。此安装类型不支持 RHCOS QCOW2 镜像。

流程

  1. 登录到镜像主机。
  2. mirror.openshift.com 获取 RHCOS ISO 和 RootFS 镜像,例如:

    1. 将所需的镜像名称和 OpenShift Container Platform 版本导出为环境变量:

      $ export ISO_IMAGE_NAME=<iso_image_name> 1
      $ export ROOTFS_IMAGE_NAME=<rootfs_image_name> 1
      $ export OCP_VERSION=<ocp_version> 1
      1
      ISO 镜像名称,如 rhcos-4.11.1-x86_64-live.x86_64.iso
      1
      rootfs 镜像名称,如 rhcos-4.11.1-x86_64-live-rootfs.x86_64.img
      1
      OpenShift Container Platform 版本,如 4.11.1
    2. 下载所需的镜像:

      $ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.11/${OCP_VERSION}/${ISO_IMAGE_NAME} -O /var/www/html/${ISO_IMAGE_NAME}
      $ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.11/${OCP_VERSION}/${ROOTFS_IMAGE_NAME} -O /var/www/html/${ROOTFS_IMAGE_NAME}

验证步骤

  • 验证下载的镜像是否成功,并在断开连接的镜像主机上提供,例如:

    $ wget http://$(hostname)/${ISO_IMAGE_NAME}

    输出示例

    Saving to: rhcos-4.11.1-x86_64-live.x86_64.iso
    rhcos-4.11.1-x86_64-live.x86_64.iso-  11%[====>    ]  10.01M  4.71MB/s

22.2.4. 在 hub 集群上启用驱动程序更新服务并更新 AgentServiceConfig

Red Hat Advanced Cluster Management (RHACM)使用辅助服务来部署 OpenShift Container Platform 集群。当使用中央基础架构管理 (CIM) 启用 MultiClusterHub Operator 时,辅助服务会自动部署。当您在 hub 集群上启用了 CIM 时,您需要更新 AgentServiceConfig 自定义资源 (CR),其引用托管在镜像 registry HTTP 服务器上的 ISO 和 RootFS 镜像。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 已以具有 cluster-admin 权限的用户身份登录到 hub 集群。
  • 您已在 hub 集群中启用了辅助服务。如需更多信息,请参阅启用 CIM

流程

  1. 运行以下命令来更新 AgentServiceConfig CR:

    $ oc edit AgentServiceConfig
  2. 在 CR 的 items.spec.osImages 字段中添加以下条目:

    - cpuArchitecture: x86_64
        openshiftVersion: "4.11"
        rootFSUrl: https://<host>/<path>/rhcos-live-rootfs.x86_64.img
        url: https://<mirror-registry>/<path>/rhcos-live.x86_64.iso

    其中:

    <host>
    是目标镜像 registry HTTP 服务器的完全限定域名 (FQDN)。
    <path>
    是目标镜像 registry 上镜像的路径。

    保存并退出编辑器以应用更改。

22.2.5. 将 hub 集群配置为使用断开连接的镜像 registry

您可以将 hub 集群配置为使用断开连接的镜像 registry 作为断开连接的环境。

先决条件

  • 已安装 Red Hat Advanced Cluster Management (RHACM) 2.6 的断开连接的 hub 集群安装。
  • 您已在 HTTP 服务器中托管 rootfsiso 镜像。
警告

如果为 HTTP 服务器启用 TLS,您必须确认 root 证书由客户端信任的颁发机构签名,并验证 OpenShift Container Platform hub 和受管集群和 HTTP 服务器之间的可信证书链。使用配置了不受信任的证书的服务器可防止将镜像下载到创建镜像中。不支持使用不受信任的 HTTPS 服务器。

流程

  1. 创建包含镜像 registry 配置的 ConfigMap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: assisted-installer-mirror-config
      namespace: assisted-installer
      labels:
        app: assisted-service
    data:
      ca-bundle.crt: <certificate> 1
      registries.conf: |  2
        unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
        [[registry]]
          location = <mirror_registry_url>  3
          insecure = false
          mirror-by-digest-only = true
    1
    创建镜像 registry 时使用的镜像 registry 证书。
    2
    镜像 registry 的配置。
    3
    镜像 registry 的 URL。

    这会更新 AgentServiceConfig 自定义资源中的 mirrorRegistryRef,如下所示:

    输出示例

    apiVersion: agent-install.openshift.io/v1beta1
    kind: AgentServiceConfig
    metadata:
      name: agent
    spec:
      databaseStorage:
        volumeName: <db_pv_name>
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: <db_storage_size>
      filesystemStorage:
        volumeName: <fs_pv_name>
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: <fs_storage_size>
      mirrorRegistryRef:
        name: 'assisted-installer-mirror-config'
      osImages:
        - openshiftVersion: <ocp_version>
          rootfs: <rootfs_url> 1
          url: <iso_url> 2

    1 2
    必须与 HTTPD 服务器的 URL 匹配。
重要

集群安装过程中需要一个有效的 NTP 服务器。确保有合适的 NTP 服务器可用,并可通过断开连接的网络从安装的系统访问。

22.2.6. 使用 ArgoCD 配置 hub 集群

您可以使用一组 ArgoCD 应用程序来配置 hub 集群,这些应用程序会根据 ZTP GitOps 流为每个站点生成所需的安装和策略自定义资源 (CR)。

先决条件

  • 已安装 Red Hat Advanced Cluster Management (RHACM) 和 Red Hat OpenShift GitOps 的 OpenShift Container Platform hub 集群。
  • 您已从 ZTP GitOps 插件容器中提取了引用部署,如 "Preparing the GitOps ZTP site configuration repository" 部分所述。提取引用部署会创建以下流程中引用的 out/argocd/deployment 目录。

流程

  1. 准备 ArgoCD 管道配置:

    1. 创建 Git 存储库,其目录结构类似于 example 目录。如需更多信息,请参阅"准备 GitOps ZTP 站点配置存储库"。
    2. 使用 ArgoCD UI 配置对存储库的访问。在 Settings 下配置以下内容:

      • Repositories - 添加连接信息。URL 必须以 .git 结尾,例如 https://repo.example.com/repo.git 和凭证。
      • 证书 - 如果需要,为存储库添加公共证书。
    3. 根据您的 Git 仓库修改两个 ArgoCD 应用程序, out/argocd/deployment/clusters-app.yamlout/argocd/deployment/policies-app.yaml

      • 更新 URL 以指向 Git 存储库。URL 以 .git 结尾,例如 https://repo.example.com/repo.git
      • targetRevision 表示要监控的 Git 存储库分支。
      • path 指定到 SiteConfigPolicyGenTemplate CR 的路径。
  2. 要安装 ZTP GitOps 插件,您必须使用之前提取到 out/argocd/deployment/ 目录中的补丁文件来修补 hub 集群中的 ArgoCD 实例。运行以下命令:

    $ oc patch argocd openshift-gitops \
    -n openshift-gitops --type=merge \
    --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
  3. 使用以下命令将管道配置应用到 hub 集群:

    $ oc apply -k out/argocd/deployment

22.2.7. 准备 GitOps ZTP 站点配置存储库

在使用 ZTP GitOps 管道前,您需要准备 Git 存储库来托管站点配置数据。

先决条件

  • 已配置了 hub 集群 GitOps 应用程序来生成所需的安装和策略自定义资源 (CR)。
  • 您已使用 ZTP 部署受管集群。

流程

  1. 使用 SiteConfigPolicyGenTemplate CR 的单独路径创建一个目录结构。
  2. 使用以下命令,从 ztp-site-generate 容器镜像导出 argocd 目录:

    $ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.11
    $ mkdir -p ./out
    $ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.11 extract /home/ztp --tar | tar x -C ./out
  3. 检查 out 目录是否包含以下子目录:

    • out/extra-manifest 包含 SiteConfig 用来生成额外清单 configMap 的源 CR 文件。
    • out/source-crs 包含 PolicyGenTemplate 用来生成 Red Hat Advanced Cluster Management(RHACM)策略的源 CR 文件。
    • out/argocd/deployment 包含补丁和 YAML 文件,可在 hub 集群中应用,以便在此过程的下一步中使用。
    • out/argocd/example 包含代表推荐的配置的 siteConfigPolicyGenTemplate 文件的示例。

out/argocd/example 下的目录结构充当 Git 存储库结构和内容的参考。示例包括用于单节点、三节点和标准集群的 SiteConfigPolicyGenTemplate 引用 CR。删除您对未使用集群类型的引用。以下示例描述了单节点集群网络的一组 CR:

example
├── policygentemplates
│   ├── common-ranGen.yaml
│   ├── example-sno-site.yaml
│   ├── group-du-sno-ranGen.yaml
│   ├── group-du-sno-validator-ranGen.yaml
│   ├── kustomization.yaml
│   └── ns.yaml
└── siteconfig
    ├── example-sno.yaml
    ├── KlusterletAddonConfigOverride.yaml
    └── kustomization.yaml

在单独的目录中,保持 SiteConfigPolicyGenTemplate CR。SiteConfigPolicyGenTemplate 目录必须包含一个 kustomization.yaml 文件,该文件明确包含该目录中的文件。

此目录结构以及 kustomization.yaml 文件必须提交并推送到 Git 存储库。初始推送到 Git 的推送应包含 kustomization.yaml 文件。在部署站点时,可以忽略 SiteConfig (example-sno.yaml) 和 PolicyGenTemplate (common-ranGen.yaml, group-du-sno*.yaml, and example-sno-site.yaml) 文件,并在以后需要时在推送它们。

只有在提交并推送到 Git 的一个或多个 SiteConfig CR 时,才需要 KlusterletAddonConfigOverride.yaml 文件。如需有关如何使用的示例,请参阅 example-sno.yaml

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.