第 3 章 构建和管理逻辑绑定的镜像
通过逻辑地绑定镜像,您可以支持将生命周期绑定到基本 bootc 镜像的容器镜像。这有助于将不同的操作流程组合到应用程序和操作系统中,容器镜像则从基础镜像引用为镜像文件或等效镜像。因此,您可以为系统安装管理多个容器镜像。
您可以使用容器进行生命周期密集型工作负载,如安全代理和监控工具。您还可以使用 bootc upgrade
命令升级这些工作负载。
3.1. 逻辑绑定的镜像
通过逻辑地绑定镜像,可以将容器镜像与基础引导系统镜像相关联。默认情况下,应用程序容器由执行的方式执行,例如 podman
的生命周期独立于主机升级;它们可以随时添加或删除,如果容器镜像不存在,通常会根据需要获取。
逻辑上限的镜像提供了关键优势,因为以这种方式绑定了应用程序容器与主机升级相关联的生命周期,并在主机重启到新操作系统 之前 可用。只要 bootc 容器引用它们,则以这种方式绑定的容器镜像就会存在。
以下是通常没有在主机外更新的生命周期绑定工作负载示例:
- logging,如 journald→remote log forwarder 容器
- 监控,如 Prometheus node_exporter
- 配置管理代理
- 安全代理
对于这些类型的工作负载,通常重要的是,容器从引导过程的早期阶段开始,例如网络可能可用。通过逻辑地绑定镜像,您可以使用基本 bootc 镜像中的二进制的 ExecStart=
启动容器(通常是通过 systemd)。
术语 逻辑地绑定 也可以与物理绑定镜像的另一个模型进行比较,其中应用程序容器内容实际存储在 bootc 容器镜像中。物理绑定的逻辑绑定的一个关键优点是,在没有重新下载未更改的应用程序容器镜像的情况下,可以更新 bootc 系统。
在使用逻辑上绑定的镜像时,您必须管理多个容器镜像以便系统安装逻辑绑定的镜像。这是一个优点,也是一个缺点。例如,对于断开连接或离线安装,您必须镜像所有容器,而不仅仅是一个。应用镜像仅从基础镜像引用为 .image
文件或等同文件。
- 逻辑绑定的镜像安装
-
运行
bootc install
时,逻辑上绑定的镜像必须存在于默认的/var/lib/containers
容器存储中。镜像将复制到目标系统中,并在引导时直接存在,以及 bootc 基础镜像。 - 逻辑地绑定的镜像生命周期
-
逻辑上绑定的镜像由可引导容器引用,并在基于 bootc 的服务器启动时具有保证可用性。该镜像始终通过使用
bootc 升级来升级
,且可作为只读方式
提供给其他进程,如 Podman。 - 在升级、回滚和垃圾回收中逻辑地绑定的镜像管理
- 在升级过程中,逻辑绑定的镜像只由 bootc 管理。
- 在回滚过程中,保留与回滚部署相对应的逻辑绑定镜像。
- bootc 执行未使用的绑定镜像的垃圾回收。