第 5 章 更新了引导镜像
Machine Config Operator (MCO)使用引导镜像来启动 Red Hat Enterprise Linux CoreOS (RHCOS) 节点。默认情况下,OpenShift Container Platform 不管理引导镜像。
这意味着集群中的引导镜像不会随集群一起更新。例如,如果您的集群最初使用 OpenShift Container Platform 4.12 创建,集群用来创建节点的引导镜像是相同的 4.12 版本,即使集群是更新的版本。如果以后将集群升级到 4.13 或更高版本,新节点将继续使用相同的 4.12 镜像扩展。
这个过程可能会导致以下问题:
- 启动节点的额外时间
- 证书过期问题
- 版本偏移问题
要避免这些问题,您可以将集群配置为在更新集群时更新引导镜像。通过修改 MachineConfiguration
对象,您可以启用此功能。目前,更新引导镜像的功能仅适用于 Google Cloud Platform (GCP) 集群,且不支持由 Cluster API 管理的集群。
更新引导镜像功能只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
要查看集群中使用的当前引导镜像,请检查机器集:
使用引导镜像引用的机器集示例
- 1
- 此引导镜像与最初安装的 OpenShift Container Platform 版本相同,在本例中为 OpenShift Container Platform 4.12,无论集群的当前版本是什么。在机器集中表示引导镜像的方式取决于平台,因为
providerSpec
字段的结构与平台不同。
如果您将集群配置为更新引导镜像,机器集中引用的引导镜像与集群的当前版本匹配。
5.1. 配置更新的引导镜像 复制链接链接已复制到粘贴板!
默认情况下,OpenShift Container Platform 不管理引导镜像。您可以通过修改 MachineConfiguration
对象,将集群配置为在更新集群时更新引导镜像。
先决条件
-
已使用功能门启用
TechPreviewNoUpgrade
功能集。如需更多信息,请参阅附加资源部分中的"使用功能门启用功能"。
流程
运行以下命令,编辑名为
cluster
的MachineConfiguration
对象,以启用引导镜像的更新:oc edit MachineConfiguration cluster
$ oc edit MachineConfiguration cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:为所有机器集配置引导镜像更新功能:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:为特定机器集配置引导镜像更新功能:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示如果机器集中没有适当的标签,请运行以下命令来添加键值对:
oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api
$ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
通过查看机器配置对象来查看引导镜像更新的当前状态:
oc get machineconfiguration cluster -n openshift-machine-api -o yaml
$ oc get machineconfiguration cluster -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用引导镜像引用的机器集示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来获取引导镜像版本:
oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
$ oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用引导镜像引用的机器集示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 此引导镜像与当前的 OpenShift Container Platform 版本相同。