第 7 章 RHCOS 镜像分层
Red Hat Enterprise Linux CoreOS (RHCOS) 镜像分层允许您通过将额外镜像分层到基础镜像来轻松地扩展基本 RHCOS 镜像的功能。此分层不会修改基本 RHCOS 镜像。相反,它会创建一个自定义层次镜像,其中包含所有 RHCOS 功能,并为集群中的特定节点添加额外的功能。
7.1. 关于 RHCOS 镜像分层
镜像分层(Image layering)允许您在任何集群 worker 节点上自定义底层节点操作系统。这有助于保持一切最新状态,包括节点操作系统和添加的任何自定义,如特殊软件。
您可以使用 Containerfile 创建自定义分层镜像,并使用自定义对象将其应用到节点。在任何时候,您可以通过删除该自定义对象来删除自定义分层镜像。
使用 RHCOS 镜像分层时,您可以在基础镜像中安装 RPM,自定义内容将与 RHCOS 一起引导。Machine Config Operator (MCO) 可以推出这些自定义分层镜像,并像默认 RHCOS 镜像一样监控这些自定义容器。RHCOS 镜像分层为管理 RHCOS 节点的方式提供了更大的灵活性。
不建议将实时内核和扩展 RPM 作为自定义分层内容安装。这是因为这些 RPM 可能会与使用机器配置安装的 RPM 冲突。如果存在冲突,MCO 会在尝试安装机器配置 RPM 时进入 degraded
状态。在继续操作前,您需要从机器配置中删除冲突扩展。
将自定义分层镜像应用到集群后,您可以有效地 获取自定义分层镜像和这些节点的所有权。虽然红帽仍负责维护和更新标准节点上的基础 RHCOS 镜像,但在使用自定义分层镜像的节点中维护和更新镜像。假定您对自定义分层镜像应用的软件包及软件包可能出现的问题负责。
在节点上部署自定义分层镜像的方法有两种:
- On-cluster layering
通过 on-cluster layering,您可以创建一个
MachineOSConfig
对象,在其中包含 Containerfile 和其他参数。构建会在集群中执行,生成的自定义分层镜像会自动推送到您的存储库,并应用到您在MachineOSConfig
对象中指定的机器配置池。整个过程会完全在集群中执行。重要集群镜像分层只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
- Out-of-cluster layering
-
通过 out-of-cluster layering,您可以创建一个 Containerfile,引用 OpenShift Container Platform 镜像和您要应用的 RPM,在您自己的环境中构建分层镜像,并将镜像推送到您的存储库。然后,在集群中,为指向新镜像的目标节点池创建一个
MachineConfig
对象。Machine Config Operator 覆盖基础 RHCOS 镜像,由关联的机器配置中的osImageURL
值指定,并引导新镜像。
对于这两种方法,使用在集群的其余部分上安装的同一基本 RHCOS 镜像。使用 oc adm release info --image-for rhel-coreos
命令获取集群中使用的基础镜像。