11.4. 与 podman generate systemd 命令相比,使用 Quadlets 的优点
您可以使用 Quadlets 工具,它描述了如何以类似于常规 systemd
单元文件的格式运行容器。
注意
Quadlet 从 Podman v4.6 开始提供。
与使用 podman generate systemd
命令生成单元文件相比,Qadlets 有很多优点,例如:
-
易于维护 :容器描述侧重于相关的容器细节,并隐藏在
systemd
下运行的容器的技术细节。 -
自动更新 :在更新后,Quadlets 不需要手动重新生成单元文件。如果发布了新版本的 Podman,则在
systemclt daemon-reload
命令执行时会自动更新您的服务,例如在引导时。 - 简化的工作流 :由于简化的语法,您可以从头开始创建 Quadlet 文件,并在任何地方部署它们。
- 支持标准的 systemd 选项 :Qadlet 使用新表扩展了现有的 systemd-unit 语法,例如,配置容器的表。
注意
Quadlet 支持 Kubernetes YAML 功能的子集。如需更多信息,请参阅 支持的 YAML 字段的支持矩阵。您可以使用以下工具之一生成 YAML 文件:
-
podman:
podman generate kube
命令 -
OpenShift: 带有
--dry-run
选项的oc generate
命令 -
kubernetes: 带有
--dry-run
选项的kubectl create
命令
Quadlet 支持这些单元文件类型:
Container units : 用来通过运行
podman run
命令管理容器。-
文件扩展名:
.container
-
部分名称:
[Container]
-
必填字段:描述服务运行的容器镜像的
Image
-
文件扩展名:
Kube units: 用来通过运行
podman kube play
命令来管理 Kubernetes YAML 文件中定义的容器。-
文件扩展名:
.kube
-
部分名称:
[Kube]
-
必填字段:定义 Kubernetes YAML 文件路径的
Yaml
-
文件扩展名:
Network units: 用来创建可在
.container
或.kube
文件中引用的 Podman 网络。-
文件扩展名:
.network
-
部分名称:
[Network]
- 必填字段:无
-
文件扩展名:
Volume units :用来创建可在
.container
文件中引用的 Podman 卷。-
文件扩展名:
.volume
-
部分名称:
[Volume]
- 必填字段:无
-
文件扩展名: