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