第 5 章 发行镜像
当使用 Red Hat Advanced Cluster Management for Kubernetes 在供应商处创建集群时,您必须指定用于新集群的发行镜像。发行镜像指定使用哪个版本的 Red Hat OpenShift Container Platform 来构建集群。
引用发行镜像的文件是在 acm-hive-openshift-releases
GitHub 仓库中维护的 yaml
文件。Red Hat Advanced Cluster Management 使用这些文件在控制台中创建可用发行镜像的列表。这包括 OpenShift Container Platform 的最新快速频道镜像。控制台仅显示三个 OpenShift Container Platform 最新版本的最新发行镜像。例如,您可能在控制台选项中看到以下发行镜像:
- quay.io/openshift-release-dev/ocp-release:4.6.23-x86_64
- quay.io/openshift-release-dev/ocp-release:4.7.4-x86_64
- quay.io/openshift-release-dev/ocp-release:4.8.0-x86_64
存储了额外的发行镜像,但无法在控制台中看到。要查看所有可用发行镜像,请在 CLI 中运行 kubectl get clusterimageset
。控制台中只有最新版本可促进创建带有最新发行镜像的集群。在某些情况下,您可能需要创建特定版本的集群,因此还会继续提供老版本。Red Hat Advanced Cluster Management 使用这些文件在控制台中创建可用发行镜像的列表。这包括 OpenShift Container Platform 的最新快速频道镜像。仓库中包含 clusterImageSets
目录和 subscription
目录,它们是您使用发行镜像时使用的目录。
仓库中包含 clusterImageSets
目录和 subscription
目录,它们是您使用发行镜像时使用的目录。
clusterImageSets
目录包含以下目录:
- Fast - 包含引用每个受支持 OpenShift Container Platform 版本的最新发行镜像版本的文件此目录中的发行镜像经过测试、验证和支持。
- Releases - 包含引用每个 OpenShift Container Platform 版本(table、fast 和 candidate 频道)的所有发行镜像的文件 请注意:这些版本并没有经过测试并确定是稳定的。
- Stable - 包含引用每个受支持 OpenShift Container Platform 版本的最新两个稳定发行镜像版本的文件此目录中的发行镜像经过测试、验证和支持。
您可以通过三种方式对自己的 ClusterImageSet
进行策展:
这三种方法中的第一个步骤都是禁用包含执行最新快速频道镜像的自动更新的订阅。使用 multiclusterhub 资源中的安装程序参数可以禁用对最新的 fast ClusterImageSet
的自动策展。通过切换 spec.disableUpdateClusterImageSets
参数为 true
和 false
,Red Hat Advanced Cluster Management 安装的订阅会相应地被启用和禁用。如果要策展自己的镜像,请将 spec.disableUpdateClusterImageSets
设置为 true
,以禁用订阅。
选项 1:指定要在控制台创建集群时使用的特定 ClusterImageSet
的镜像引用。您指定的每个新条目都会保留,并可用于将来的所有集群置备。一个示例为:quay.io/openshift-release-dev/ocp-release:4.6.8-x86_64
.
选项 2:手动创建,应用来自 acm-hive-openshift-releases
GitHub 仓库的 ClusterImageSets
YAML 文件。
选项 3:遵循 acm-hive-openshift-releases
GitHub 仓库中的 README.md
,启用对来自 fork 的 GitHub 仓库的 ClusterImageSets
的自动更新。
subscription
目录包含指定从哪里拉取发行镜像列表的文件。Red Hat Advanced Cluster Management 的默认发行镜像位于 Quay.io 目录中。镜像被 acm-hive-openshift-releases GitHub 仓库中的 文件用于版本 2.3 引用。
5.1. 同步可用发行镜像
版本镜像会频繁更新,因此可能需要同步发行镜像列表,以确保可以选择最新的可用版本。发行镜像可在 2.3 的 acm-hive-openshift-releases GitHub 仓库中找到。
发行镜像有三个级别的稳定性:
类别 | 描述 |
stable | 已确认用于正确安装和构建集群的完整测试镜像。 |
fast | 部分进行了测试,但稳定性可能低于稳定版本。 |
candidate | 最新镜像,但未经测试。可能会有一些程序错误。 |
完成以下步骤以刷新列表:
如果启用了安装程序管理的
acm-hive-openshift-releases
订阅,请通过将disableUpdateClusterImageSets
设置为true
来禁用订阅。您可以输入以下命令删除订阅:oc delete -f subscription/subscription-stable
- 为版本 2.3 克隆 acm-hive-openshift-releases GitHub 仓库。
输入以下命令连接到稳定版本镜像并同步您的 Red Hat Advanced Cluster Management for Kubernetes hub 集群:
make subscribe-stable
注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个
make
命令。大约一分钟后,最新的
stable
镜像列表将可用。要同步并显示快速发行镜像,请输入以下命令:
make subscribe-fast
注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个
make
命令。运行此命令后,当前可用的镜像会在约一分钟内在可用的
stable
和fast
发行镜像列表中出现。要同步并显示
candidate
发行镜像,请输入以下命令:make subscribe-candidate
注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个
make
命令。运行该命令后,当前可用的镜像会更新可用的
stable
、fast
和candidate
发行镜像列表。
- 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。
使用以下格式输入命令来从这些频道中取消订阅以停止查看更新:
oc delete -f subscription/subscription-stable
5.1.1. 连接时维护自定义的发行镜像列表
您可能希望确保所有集群都使用同一发行镜像。为简化操作,您可以创建自己的自定义列表,在其中包含创建集群时可用的发行镜像。完成以下步骤以管理可用发行镜像:
-
如果启用了安装程序管理的
acm-hive-openshift-releases
订阅,请通过将disableUpdateClusterImageSets
设置为true
来禁用它。 - 为版本 2.3 对 acm-hive-openshift-releases GitHub 仓库 进行分叉。
通过将
spec: pathname
更改为访问已分叉的仓库的 GitHub 名称,而不是stolostron
,更新./subscribe/channel.yaml
文件。此步骤指定 hub 集群在哪里检索发行镜像。您更新的内容应类似以下示例:spec: type: GitHub pathname: https://github.com/<forked_content>/acm-hive-openshift-releases.git
将
forked_content
替换为已分叉仓库的路径。- 使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建集群时,需要为镜像添加 YAML 文件,将其添加到 ./clusterImageSets/stable/ 或 ./clusterImageSets/fast/* 目录。*提示: 您可以将更改合并到已分叉的仓库,并从主仓库检索可用的 YAML 文件。
- 将更改提交并合并到您的已分叉仓库。
在克隆了
acm-hive-openshift-releases
仓库后,使用以下命令来更新 stable 镜像以同步 stable 发行镜像列表:make subscribe-stable
注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个
make
命令。运行此命令后,可用稳定镜像列表会在约一分钟内更新为当前可用镜像。
默认情况下,仅会列出稳定镜像。要同步并显示快速发行镜像,请输入以下命令:
make subscribe-fast
注意:您只能在使用 Linux 或者 MacOS 操作系统时运行这个
make
命令。运行此命令后,可用快速镜像列表会在约 1 分钟内更新为当前可用镜像。
默认情况下,Red Hat Advanced Cluster Management 会预加载几个 ClusterImageSets。您可以使用以下命令列出可用内容并删除默认值。
oc get clusterImageSets oc delete clusterImageSet <clusterImageSet_NAME>
注: 如果您还没有通过将
disableUpdateClusterImageSets
的值设置为true
来禁用安装程序管理的ClusterImageSet
的自动更新,则您删除的任何镜像都会被自动重新创建。- 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。
5.1.2. 断开连接时维护自定义的发行镜像列表
在某些情况下,当节点集群没有互联网连接时,您需要维护一个自定义的发行镜像列表。您可以创建自己的自定义列表,在其中包含创建集群时可用的发行镜像。完成以下步骤以在断开连接的情况下管理可用发行镜像:
- 在连接的系统中,使用可用于版本 2.3 的集群镜像集导航到 acm-hive-openshift-releases GitHub 仓库。
-
将
clusterImageSets
目录复制到可以访问断开连接的 Red Hat Advanced Cluster Management for Kubernetes hub 集群的系统中。 -
使用集群镜像集添加受管集群和断开连接的存储库之间的映射。有关使用
ImageContentSourcePolicy
对象的信息,请参阅配置 镜像 (mirror) 以完成映射。 -
使用 Red Hat Advanced Cluster Management 控制台手动添加
clusterImageSet
YAML 内容,为在创建集群时可用的镜像添加 YAML 文件。 修改 OpenShift Container Platform 发行镜像的
clusterImageSet
YAML 文件,以引用存储镜像的正确离线存储库。您的更新应类似以下示例:apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: img4.4.0-rc.6-x86-64 spec: releaseImage: IMAGE_REGISTRY_IPADDRESS_or_DNSNAME/REPO_PATH/ocp-release:4.4.0-rc.6-x86_64
确保在 YAML 文件中引用的离线镜像 registry 中载入镜像。
通过为每个
YAML
文件输入以下命令来创建每个 clusterImageSets:oc create -f <clusterImageSet_FILE>
将
clusterImageSet_FILE
替换为集群镜像集文件的名称。例如:oc create -f img4.9.9-x86_64.yaml
在为您要添加的每个资源运行此命令后,可用发行镜像列表将变为可用。
- 另外,您还可以将镜像 URL 直接粘贴到 Red Hat Advanced Cluster Management 的创建集群控制台中。如果镜像 URL 不存在,添加镜像 URL 会创建新的 clusterImageSet。
- 在创建集群时,查看 Red Hat Advanced Cluster Management 控制台中当前可用发行镜像的列表。