containers.podman.podman_pod 模块 – 管理 Podman Pod
注意
此模块是 containers.podman 集合 (版本 1.16.2) 的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install containers.podman
。您需要其他要求才能使用此模块,请参阅 要求 以了解详情。
要在 playbook 中使用它,请指定:containers.podman.podman_pod
。
containers.podman 1.0.0 中的新增功能
概要
管理 podman pod。
要求
以下要求是在执行此模块的主机上需要的。
podman
参数
参数 |
注释 |
---|---|
向所有 pod 中容器共享的 /etc/hosts 文件添加主机。 |
|
块IO相对权重。权重值在10到1000之间。 此选项在 cgroups V1 无根系统上不受支持。 |
|
块IO相对设备权重。 |
|
将在其下创建 pod 的 cgroup 的 cgroups 路径。如果路径不是绝对路径,则该路径被认为相对于 init 进程的 cgroups 路径。如果 cgroups 不存在,则将创建它们。 |
|
CPU份额(相对权重)。 |
|
设置分配给 pod 的 CPU 总数。默认为 0.000,表示对计算能力没有限制。 |
|
限制支持执行的CPU。第一个CPU编号为0。与`cpus`不同,此参数为字符串类型,并解析为数字列表。格式为 0-3,0,1 |
|
允许执行的内存节点 (0-3, 0,1)。仅在 NUMA 系统上有效。 |
|
返回可用于调查的附加信息。 选项
|
|
向 pod 添加主机设备。可选的权限参数可用于指定设备权限。它是 r(读取)、w(写入)和 m(mknod(2))的组合。 |
|
限制从设备读取速率(每秒字节数)(例如 device-read-bps=/dev/sda:1mb) |
|
限制向设备写入速率(每秒字节数)。 |
|
在所有 pod 中容器共享的 /etc/resolv.conf 文件中设置自定义 DNS 服务器。允许使用特殊的“none”选项,它禁用为 pod 创建 /etc/resolv.conf。 |
|
在所有 pod 中容器共享的 /etc/resolv.conf 文件中设置自定义 DNS 选项。 |
|
在所有 pod 中容器共享的 /etc/resolv.conf 文件中设置自定义 DNS 搜索域。 |
|
如果不在运行 默认值: |
|
设置最后一个容器退出时 pod 的退出策略。支持的策略为 stop 和 continue 选项
|
|
为容器生成 systemd 单元文件。 默认值: |
|
添加 systemd 单元 after (After=) 选项,该选项对依赖项列表和此服务之间的依赖项进行排序。 |
|
设置容器的 systemd 单元名称前缀。默认为“container”。 |
|
在单元文件中使用容器的名称进行启动、停止和描述。默认为 true。 选项
|
|
在单元启动时创建容器和 pod,而不是期望它们存在。默认为“false”。有关更多信息,请参阅 podman-generate-systemd(1)。 选项
|
|
不生成包含元数据(例如 Podman 版本和时间戳)的标头。从 podman 3.1.0 版本开始。 选项
|
|
指定生成单元文件的目录的路径。此选项需要此参数。如果它不存在,则将创建该目录。 |
|
设置 pod 的 systemd 单元名称前缀。默认为“pod”。 |
|
设置 systemd 单元 requires (Requires=) 选项。类似于 wants,但声明更强的需求依赖关系。 |
|
为服务指定重启策略。重启策略必须是“no”、“on-success”、“on-failure”、“on-abnormal”、“on-watchdog”、“on-abort”或“always”之一。默认策略是“on-failure”。 选项
|
|
设置 systemd 服务 restartsec 值。 |
|
设置容器/pod 的名称/ID 与前缀之间的 systemd 单元名称分隔符。默认为“-”(短划线)。 |
|
使用给定值覆盖容器的默认启动超时。 |
|
使用给定值覆盖容器的默认停止超时。在 4.0 版本之前称为 `time`。 |
|
添加 systemd 单元 wants (Wants=) 选项,表示此服务(弱)依赖于该选项。 |
|
用户命名空间的 GID 映射。使用此标志将启用用户命名空间运行容器。它与 `userns` 和 `subgidname` 标志冲突。 |
|
要添加到容器的 GPU 设备('all' 表示传递所有 GPU)。 |
|
为 Pod 设置主机名。 |
|
创建一个 infra 容器并将其与 Pod 关联。infra 容器是一个轻量级容器,用于协调 Pod 的共享内核命名空间。默认为 true。 选项
|
|
启动 infra 容器将运行的命令。默认为“/pause”。 |
|
将 infra 容器的 conmon 进程的 pid 写入文件。由于 conmon 在与 Podman 不同的进程中运行,因此在使用 systemd 管理 Podman 容器和 Pod 时,这是必要的。 |
|
将为 infra 容器创建的镜像。默认为“k8s.gcr.io/pause:3.1”。 |
|
将用于 Pod 的 infra 容器的名称。 |
|
为 Pod 的共享网络设置静态 IP。 |
|
为 Pod 的共享网络设置静态 IPv6。 |
|
向 Pod 添加元数据,传递标签键值对字典。 |
|
读取包含标签的行分隔文件。 |
|
为 Pod 的共享网络设置静态 MAC 地址。 |
|
设置内存限制。 单位可以是 b(字节)、k(KiB)、m(MiB)或 g(GiB)。 |
|
设置等于内存加交换空间的限制值。 单位可以是 b(字节)、k(KiB)、m(MiB)或 g(GiB)。 |
|
为 Pod 分配名称。 |
|
设置 Pod 的网络模式。支持的值包括 bridge(默认)、host(不创建网络命名空间,Pod 中的所有容器都将使用主机网络)或要加入的 CNI 网络名称列表。 |
|
为 Pod 添加网络范围别名,为 Pod 加入的所有网络设置别名。要仅为特定网络设置名称,请使用 -`network` 选项下所述的别名选项。网络别名仅适用于 bridge 网络模式。此选项可以多次指定。 |
|
禁用为 Pod 创建 /etc/hosts。 选项
|
|
设置 Pod 的 PID 模式。默认为为 Pod 创建私有 PID 命名空间。需要通过 `share` 选项共享 PID 命名空间。 |
|
将 Pod ID 写入文件。 |
|
将端口或端口范围从 Pod 发布到主机。 |
|
写入 quadlet 文件的目录路径。对于 root 用户,默认为 |
|
quadlet 文件的权限。 可以将 如果未指定 如果未指定 指定 |
|
要写入的 quadlet 文件名。默认为 *name* 值。 |
|
quadlet 文件的选项。提供通常容器参数选项中缺少的内容,作为要添加的行列表。 |
|
与 present 和 started 状态一起使用,强制重新创建现有 Pod。 选项
|
|
容器退出时要遵循的重启策略。 |
|
Pod 的安全选项。 |
|
要共享的内核命名空间的逗号分隔列表。如果未指定或指定为“” ,则不共享任何命名空间。可选择的命名空间包括 ipc、net、pid、user、uts。 |
|
此布尔值决定进入 Pod 的所有容器是否都使用 Pod 作为其 cgroup 父级。Podman 中此选项的默认值为 true。 选项
|
|
设置 /dev/shm 共享内存空间的大小。单位可以是 b(字节)、k(KiB)、m(MiB)或 g(GiB)。如果省略单位,则系统使用字节。如果省略大小,则默认为 64m。当大小为 0 时,对 Pod 使用的 IPC 内存量没有限制。 |
|
systemd 特定 tmpfs 挂载点(例如 /run、/run/lock、/var/log/journal 和 /tmp)的大小。单位可以是 b(字节)、k(KiB)、m(MiB)或 g(GiB)。如果省略单位,则系统使用字节。如果省略大小,则默认为 64m。当大小为 0 时,使用量限制为主机可用内存的 50%。 |
|
此变量设置为状态 选项
|
|
来自 /etc/subgid 文件的 GID 映射名称。使用此标志将启用用户命名空间运行容器。此标志与 `userns` 和 `gidmap` 冲突。 |
|
来自 /etc/subuid 文件的 UID 映射名称。使用此标志将启用用户命名空间运行容器。此标志与 `userns` 和 `uidmap` 冲突。 |
|
设置 Pod 的内核参数。 |
|
使用提供的映射在新用户命名空间中运行容器。此选项与 `userns` 和 `subuidname` 选项冲突。此选项提供了一种将主机 UID 映射到容器 UID 的方法。可以多次传递它来映射不同的范围。 |
|
设置 Pod 中所有容器的用户命名空间模式。它默认为 PODMAN_USERNS 环境变量。空值 (“”) 表示禁用用户命名空间。 |
|
设置 Pod 的 UTS 命名空间模式。 |
|
创建绑定挂载。 |
|
从指定的容器挂载卷。 |
示例
# What modules does for example
- containers.podman.podman_pod:
name: pod1
state: started
ports:
- "4444:5555"
# Connect random port from localhost to port 80 on pod2
- name: Connect random port from localhost to port 80 on pod2
containers.podman.podman_pod:
name: pod2
state: started
publish: "127.0.0.1::80"
# Full workflow example with pod and containers
- name: Create a pod with parameters
containers.podman.podman_pod:
name: mypod
state: created
network: host
share: net
userns: auto
security_opt:
- seccomp=unconfined
- apparmor=unconfined
hostname: mypod
dns:
- 1.1.1.1
volumes:
- /tmp:/tmp/:ro
label:
key: cval
otherkey: kddkdk
somekey: someval
add_host:
- "google:5.5.5.5"
- name: Create containers attached to the pod
containers.podman.podman_container:
name: "{{ item }}"
state: created
pod: mypod
image: alpine
command: sleep 1h
loop:
- "container1"
- "container2"
- name: Start pod
containers.podman.podman_pod:
name: mypod
state: started
network: host
share: net
userns: auto
security_opt:
- seccomp=unconfined
- apparmor=unconfined
hostname: mypod
dns:
- 1.1.1.1
volumes:
- /tmp:/tmp/:ro
label:
key: cval
otherkey: kddkdk
somekey: someval
add_host:
- "google:5.5.5.5"
# Create a Quadlet file for a pod
- containers.podman.podman_pod:
name: qpod
state: quadlet
ports:
- "4444:5555"
volume:
- /var/run/docker.sock:/var/run/docker.sock
quadlet_dir: /custom/dir
返回值
常用返回值已在 此处 记录,以下是此模块独有的字段
键 |
描述 |
---|---|
为给定 Pod 生成的 Pod 检查结果。 返回:始终 示例: |