第 4 章 发行镜像

当使用 Red Hat Advanced Cluster Management for Kubernetes 在供应商处创建集群时,您必须指定用于新集群的发行镜像。发行镜像指定使用哪个版本的 Red Hat OpenShift Container Platform 来构建集群。

引用发行镜像的文件是在 acm-hive-openshift-releases GitHub 仓库中维护的 yaml 文件。Red Hat Advanced Cluster Management for Kubernetes 使用这些文件在控制台中创建可用发行镜像的列表。仓库中包含 clusterImageSets 目录和 subscription 目录,它们是您使用发行镜像时使用的目录。

clusterImageSets 目录包含以下目录:

  • Fast - 包含引用每个受支持 OpenShift Container Platform 版本的最新两个发行镜像版本的文件
  • Releases - 包含引用每个受支持 OpenShift Container Platform 版本的所有发行镜像的文件。备注:这些版本尚未全部经过测试并确定是稳定的。
  • Stable - 包含引用每个受支持 OpenShift Container Platform 版本的最新两个稳定发行镜像版本的文件此目录中的发行镜像经过测试和验证。

subscription 目录包含指定从哪里拉取发行镜像列表的文件。Red Hat Advanced Cluster Management 的默认发行镜像位于 Quay.io 目录中。它们被 acm-hive-openshift-releases GitHub 仓库中的文件引用。

4.1. 同步可用发行镜像

版本镜像会频繁更新,因此可能需要同步发行镜像列表,以确保可以选择最新的可用版本。发行镜像可在 acm-hive-openshift-releases GitHub 仓库中找到。

发行镜像有三个级别的稳定性:

表 4.1. 发行镜像的稳定性级别

类别

描述

stable

已确认用于正确安装和构建集群的完整测试镜像。

fast

部分进行了测试,但稳定性可能低于稳定版本。

candidate

最新镜像,但未经测试。可能会有一些程序错误。

完成以下步骤以刷新列表:

  1. 克隆 acm-hive-openshift-releases GitHub 仓库。
  2. 输入以下命令连接到稳定版本镜像并同步您的 Red Hat Advanced Cluster Management for Kubernetes hub 集群:

    make subscribe-stable

    备注:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。大约一分钟后,最新的 stable 项将可用。

    • 要同步并显示快速发行镜像,请输入以下命令:

      make subscribe-fast

      备注:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

      运行此命令后,当前可用的镜像会在约一分钟内在可用的 stablefast 发行镜像列表中出现。

    • 要同步并显示 candidate 发行镜像,请输入以下命令:

      make subscribe-candidate

      备注:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。

      运行该命令后,当前可用的镜像会更新可用的 stablefastcandidate 发行镜像列表。

  3. 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。
  4. 使用以下格式输入命令来从这些频道中取消订阅以停止查看更新:

    oc delete -f subscription/subscription-stable

4.1.1. 连接时维护自定义的发行镜像列表

您可能希望确保所有集群都使用同一发行镜像。为简化操作,您可以创建自己的自定义列表,在其中包含创建集群时可用的发行镜像。完成以下步骤以管理可用发行镜像:

  1. acm-hive-openshift-releases GitHub 仓库进行分叉(fork)。
  2. spec: pathname 更改为访问已分叉的仓库的 GitHub 名称,而不是 open-cluster-management,由此来更新 ./subscription/channel.yaml 文件。此步骤指定 hub 集群在哪里检索发行镜像。您更新的内容应类似以下示例:

    spec:
      type: GitHub
      pathname: https://github.com/<forked_content>/acm-hive-openshift-releases.git

    forked_content 替换为已分叉仓库的路径。

  3. 使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建集群时,为您希望可用的镜像添加 yaml 文件到 ./clusterImageSets/stable/ 或 ./clusterImageSets/ fast/* 目录。*Tip:您可以通过将更改合并到已分叉的存储库,从主存储库检索可用的 yaml 文件。
  4. 将更改提交并合并到您的已分叉仓库。
  5. 在克隆了 acm-hive-openshift-releases 仓库后,使用以下命令来更新 stable 镜像以同步 stable 发行镜像列表:

    make subscribe-stable

    备注:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。如果使用 Windows 操作系统,输入以下命令:

    oc apply -k subscription/
    oc delete -f subscription/subscription-fast.yaml
    oc apply -f subscription/subscription-stable.yaml

    运行此命令后,可用稳定镜像列表会在约一分钟内更新为当前可用镜像。

  6. 默认情况下,仅会列出稳定镜像。要同步并显示快速发行镜像,请输入以下命令:

    make subscribe-fast

    备注:您只能在使用 Linux 或者 MacOS 操作系统时运行这个 make 命令。如果使用 Windows 操作系统,输入以下命令:

    oc apply -k subscription/
    oc apply -f subscription/subscription-fast.yaml

    运行此命令后,可用快速镜像列表会在约 1 分钟内更新为当前可用镜像。

  7. 默认情况下,Red Hat Advanced Cluster Management 会预加载几个 ClusterImageSets。使用以下命令列出可用内容并删除默认值(如果需要)。

    oc get clusterImageSets
    oc delete clusterImageSet <clusterImageSet_NAME>
  8. 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。

4.1.2. 断开连接时维护自定义的发行镜像列表

在某些情况下,当节点集群没有互联网连接时,您需要维护一个自定义的发行镜像列表。您可以创建自己的自定义列表,在其中包含创建集群时可用的发行镜像。完成以下步骤以在断开连接的情况下管理可用发行镜像:

  1. 在连接的系统上,导航到 acm-hive-openshift-releases GitHub 仓库
  2. clusterImageSets 目录复制到可以访问断开连接的 Red Hat Advanced Cluster Management for Kubernetes hub 集群的系统中。
  3. 对于您希望在使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建集群时可用的镜像,通过手动添加 clusterImageSet YAML 内容来添加其 yaml 文件。
  4. 创建 clusterImageSets 命令:

    oc create -f <clusterImageSet_FILE>

    在为您要添加的每个资源运行此命令后,可用发行镜像列表将变为可用。

  5. 另外,您还可以将镜像 url 直接粘贴到 Red Hat Advanced Cluster Management 的创建集群控制台中。这将创建新的 clusterImageSets(如果此前不存在)。
  6. 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。