NAME¶
Podman-Kube-play-基于Kubernetes YAML创建容器、Pod和卷
SYNOPSIS¶
podman kube play [options] file.yml|-|https://website.io/file.yml
DESCRIPTION¶
podman kube play 读取Kubernetes YAML的结构化文件。它重新创建YAML中描述的容器、Pod或卷。然后启动Pod中的容器,并输出新Pod的ID或新卷的名称。如果将YAML文件指定为“-”,则 podman kube play
从标准输入中读取YAML文件。输入还可以是指向https://podman.io/demo.yml.等Yaml文件的URL podman kube play
从URL读取YAML并从中创建Pod和容器。
使用 --down
命令行选项,它还能够拆卸上一次运行 podman kube play
。
使用 --replace
命令行选项,它将拆除由上一次运行的 podman kube play
并使用Kubernetes YAML文件重新创建Pod。
理想情况下,输入文件是由Podman命令创建的(参见podman-kube-Generate(1))。这保证了进口的顺利和预期的结果。
目前支持的Kubernetes种类有:
豆荚
部署
PersistentVolumeClaim
ConfigMap
秘密
DaemonSet
Kubernetes Pods or Deployments
Kube Play仅支持三种卷类型,即 hostPath , emptyDir ,以及 persistentVolumeClaim 卷类型。
When using the hostPath volume type, only the default (empty), DirectoryOrCreate, Directory, FileOrCreate, File, Socket, CharDevice and BlockDevice subtypes are supported. Podman interprets the value of hostPath path as a file path when it contains at least one forward slash, otherwise Podman treats the value as the name of a named volume.
在使用 persistentVolumeClaim ,其值为 claimName 是那个叫VOLUME的Podman的名字。
在使用 emptyDir 卷,Podman创建一个匿名卷,该卷附加在Pod内运行的容器,一旦Pod被移除,该卷就会被删除。
注意:Containers的默认重启策略为 always
。您可以通过设置 restartPolicy
规范中的字段。
注意:当使用init容器播放Kube YAML时,init容器是使用init类型值创建的 once
。若要更改默认类型,请使用 io.podman.annotations.init.container.type
要将类型设置为的注释 always
。
注: hostPath Kube Play创建的卷类型被赋予SELinux共享标签(Z),绑定装载不会重新标记(使用 chcon -t container_file_t -R <directory>
)。
注意:要设置Pod的用户名,请使用 io.podman.annotations.userns Pod/部署定义中的注释。它可以用 --userns
旗帜。
注意:请使用 io.podman.annotations.volumes-from 将一个容器的装入卷绑定到另一个容器的注释。您可以将卷从多个源容器装载到目标容器。在Kube YAML中,必须在源容器之前定义属于同一Pod的源容器。批注格式为 io.podman.annotations.volumes-from/targetContainer: "sourceContainer1:mountOpts1;sourceContainer2:mountOpts2"
。
注:如果 :latest
标记时,Podman尝试从注册表中提取图像。如果映像是使用Podman或Buildah在本地构建的,则它已经 localhost
作为域,在这种情况下,Podman使用来自本地存储的图像,即使它具有 :latest
标签。
注:该命令 podman play kube
是的别名 podman kube play
,并执行相同的功能。
注:该命令 podman kube down
可用于停止和移除基于以下内容的吊舱或容器: podman kube play
来创造它们。
注意:要自定义在以下过程中创建的INFRA容器的名称 podman kube play
,请使用 io.podman.annotations.infra.name Pod定义中的注释。此批注是在从使用 --infra-name
设置了标志。
Kubernetes PersistentVolumeClaims
Kubernetes PersistentVolumeClaim代表一个名为VOLUME的Podman。Podman创建卷时只需要PersistentVolumeClaim名称。Kubernetes注释可用于利用Podman卷的可用选项。
volume.podman.io/driver
volume.podman.io/device
volume.podman.io/type
volume.podman.io/uid
volume.podman.io/gid
Volume.podman.io/mount-Options
Volume.podman.io/导入源
volume.podman.io/image
使用 volume.podman.io/import-source
将注释值中指定的tarball(.tar、.tar.gz、.tgz、.bzip、.tar.xz、.txz)的内容导入到创建的Podman卷中
Kube Play能够在给定正确的目录布局和容器文件的情况下即时构建映像。此选项目前还不适用于远程客户端,包括Mac和Windows(不包括WSL2)计算机。请考虑以下摘自YAML文件的内容:
apiVersion: v1
kind: Pod
metadata:
...
spec:
containers:
- name: container
image: foobar
...
如果有一个名为 foobar
在当前工作目录中包含名为的文件 Containerfile
或 Dockerfile
,Podman Kube Play构建并命名了这个形象 foobar
。此示例的目录结构示例如下所示:
|- mykubefiles
|- myplayfile.yaml
|- foobar
|- Containerfile
构建考虑到 foobar
作为生成的上下文目录。如果本地存储中有一个名为 foobar
,否则不会生成映像 --build
使用了标志。使用 --build=false
以完全禁用生成。
Kubernetes ConfigMap
Kubernetes ConfigMap可以被称为Pod或部署中的环境变量或卷的来源。在Podman中,ConfigMap不是独立的对象;相反,当容器使用ConfigMap时,Podman会根据需要创建环境变量或卷。
例如,下面的YAML文档定义了ConfigMap,然后在Pod中使用它:
apiVersion: v1
kind: ConfigMap
metadata:
name: foo
data:
FOO: bar
---
apiVersion: v1
kind: Pod
metadata:
name: foobar
spec:
containers:
- name: container-1
image: foobar
envFrom:
- configMapRef:
name: foo
optional: false
因此,环境变量 FOO
设置为 bar
对于容器 container-1
。
Kubernetes Secret
库伯内斯秘密代表一个名叫秘密的波德曼。Kubernetes Secret作为一个整体保存,可以作为Pod或部署中的环境变量或卷的来源。
例如,下面的YAML文档定义了一个Secret,然后在Pod中使用它:
kind: Secret
apiVersion: v1
metadata:
name: foo
data:
foo: YmFy # base64 for bar
---
apiVersion: v1
kind: Pod
metadata:
name: foobar
spec:
containers:
- name: container-1
image: foobar
env:
- name: FOO
valueFrom:
secretKeyRef:
name: foo
key: foo
因此,环境变量 FOO
设置为 bar
对于容器 container-1
。
OPTIONS¶
--annotation = key=value¶
向容器或Pod添加批注。此选项可以多次设置。
--authfile = path¶
身份验证文件的路径。缺省值为 ${XDG_RUNTIME_DIR}/containers/auth.json
在Linux上,以及 $HOME/.config/containers/auth.json
在Windows/MacOS上。该文件由创建 podman login 。如果在那里找不到授权状态, $HOME/.docker/config.json
被选中,它是使用 docker login 。
注意:还可以通过设置 REGISTRY_AUTH_FILE
环境变量这可以通过以下方式完成 export REGISTRY_AUTH_FILE=path 。
--build¶
即使在本地存储中找到映像,也要构建映像。使用 --build=false
以完全禁用生成。(此选项不适用于远程Podman客户端)
注意:您还可以通过设置BUILDAH_ISOLATION环境变量来覆盖默认隔离类型。导出BUILDAH_ISOLATION=OCI。有关更多信息,请参见podman-Build.1.md。
--cert-dir = path¶
在以下位置使用证书 path (\ *.crt, * .cert,\ *.key) to connect to the registry. (Default: /etc/containers/certs.d) For details, see * containers-certs.d(5) *。(此选项不适用于远程Podman客户端,包括Mac和Windows(不包括WSL2)计算机)
--configmap = path¶
在PATH中使用Kubernetes configmap YAML为Pod容器内的环境变量值提供源。(此选项不适用于远程Podman客户端)
注: --configmap 选项可以多次使用,或者可以使用逗号分隔的路径列表来传递多个Kubernetes figmap YAM。YAML文件可以是多文档YAML格式。但是,它必须仅包含配置映射
--context-dir = path¶
使用 path 作为每个映像的构建上下文目录。要求--Build选项为真。(此选项不适用于远程Podman客户端)
--creds = [[用户名[:密码]]]¶
这个 [username[:password] ]如有需要,可用于向登记处进行认证。如果未提供其中一个或两个值,则会出现命令行提示符并可以输入值。输入密码时没有回显。
请注意,指定的凭据仅用于针对目标注册表进行身份验证。它们不用于镜像或在重写注册表时(请参见 containers-registries.conf(5)
);要针对那些考虑使用 containers-auth.json(5)
文件。
--force¶
拆除链接到PersistentVolumeClaims的卷,作为--down的一部分
--help , -h¶
打印用法报表
--ip = IP地址¶
为Pod分配静态IP地址。当Kube Play创建多个Pod时,可以多次指定此选项。注意:加入多个网络时,请使用 --network name:ip=<ip> 语法。
--log-driver = driver¶
为所有创建的容器设置日志记录驱动程序。
--log-opt = name=value¶
记录驱动程序特定选项。
设置自定义日志记录配置。以下是 name 支持:
path :指定日志文件的路径(例如 --log-opt path=/var/log/container/mycontainer.json );
max-size :指定日志文件的最大大小(例如 --log-opt max-size=10mb );
tag :指定容器的自定义日志标记(例如 --log-opt tag="{{.ImageName}}" 。它支持的密钥与 podman inspect --format 。此选项当前仅受 journald 日志驱动程序。
--mac-address = MAC地址¶
为Pod分配静态MAC地址。当Kube Play创建多个Pod时,可以多次指定此选项。注意:加入多个网络时,请使用 --network name:mac=<mac> 语法。
--network = mode , --net¶
设置Pod的网络模式。
有效 mode 值包括:
[bridge[:OPTIONS,...]] :在默认网桥上创建网络堆栈。这是Rootful Containers的默认设置。可以指定以下附加选项:
alias=name :为容器添加网络范围的别名。
ip=IPv4 :为此容器指定静态IPv4地址。
ip=IPv6 :为此容器指定静态IPv6地址。
mac=MAC :为此容器指定静态MAC地址。
interface_name :为容器内部创建的网络接口指定名称。
例如,要设置静态IPv4地址和静态mac地址,请使用
--network bridge:ip=10.88.0.10,mac=44:33:22:11:00:99
。<网络名称或ID> [:OPTIONS,...] :连接到用户定义的网络;这是由创建的网络中的网络名称或ID podman network create 。使用网络名称意味着使用网桥网络模式。可以指定上述桥接模式下描述的相同选项。使用 --network 选项,以指定其他网络。
为了向后兼容,还可以在第一个文件中指定逗号分隔的网络 --network 参数,但是这会阻止您使用上述桥接器部分中描述的选项。
none :为容器创建网络命名空间,但不为其配置网络接口,因此容器没有网络连接。
容器: id:重用另一个容器的网络堆栈。
host :不要创建网络命名空间,容器使用主机的网络。注意:主机模式允许容器完全访问本地系统服务,如D-BUS,因此被认为是不安全的。
ns: Path:要加入的网络命名空间的路径。
private :为容器创建新的命名空间。这使用了 bridge Rootful Containers和 slirp4netns 对于没有根基的人。
[slirp4netns[:OPTIONS,...]] :使用 滑行4net (1)创建用户网络堆栈。这是无根容器的默认设置。可以指定这些附加选项,也可以使用
network_cmd_options
在tainers.conf中:allow_host_loopback=true|false :允许illrp4netns到达主机环回IP(默认为10.0.2.2或更改后的illrp4netns CIDR子网中的第二个IP,请参阅下面的CIDR选项)。默认值为FALSE。
mtu=MTU :指定要用于此网络的MTU。(默认为
65520
)。cidr=CIDR :指定要用于此网络的IP范围。(默认为
10.0.2.0/24
)。enable_ipv6=true|false :启用IPv6。默认值为True。(需要
outbound_addr6
)。outbound_addr=INTERFACE :指定SILRP绑定到的出站接口(仅限IPv4流量)。
outbound_addr=IPv4 :指定SILRP绑定到的出站IPv4地址。
outbound_addr6=INTERFACE :指定SILRP绑定到的出站接口(仅限IPv6流量)。
outbound_addr6=IPv6 :指定SILRP绑定到的出站IPv6地址。
port_handler=rootlesskit :使用无根套件进行端口转发。默认值。注意:Rootless Kit将传入数据包的源IP地址更改为容器网络命名空间中的IP地址,通常
10.0.2.100
。如果应用程序需要真实的源IP地址,例如Web服务器日志,请使用glirp4netns端口处理程序。当连接到用户定义的网络时,无根工具包端口处理程序也用于无根容器。port_handler=slirp4netns :使用glirp4netns端口转发,它比rootless kit慢,但保留了正确的源IP地址。此端口处理程序不能用于用户定义的网络。
pasta[:OPTIONS,...]: use pasta(1) to create a user-mode networking stack.
This is only supported in rootless mode.
By default, IPv4 and IPv6 addresses and routes, as well as the pod interface name, are copied from the host. If port forwarding isn't configured, ports are forwarded dynamically as services are bound on either side (init namespace or container namespace). Port forwarding preserves the original source IP address. Options described in pasta(1) can be specified as comma-separated arguments.
In terms of pasta(1) options, --config-net is given by default, in order to configure networking when the container is started, and --no-map-gw is also assumed by default, to avoid direct access from container to host using the gateway address. The latter can be overridden by passing --map-gw in the pasta-specific options (despite not being an actual pasta(1) option).
Also, -t none and -u none are passed if, respectively, no TCP or UDP port forwarding from host to container is configured, to disable automatic port forwarding based on bound ports. Similarly, -T none and -U none are given to disable the same functionality from container to host.
Some examples:pasta:--map-gw :允许容器使用网关地址直接到达主机。
pasta:--mtu,1500 :指定1500字节的MTU作为 tap 容器中的接口。
pasta:--ipv4-only,-a,10.0.2.0,-n,24,-g,10.0.2.2,--dns-forward,10.0.2.3,-m,1500,--no-ndp,--no-dhcpv6,--no-dhcp ,相当于默认的glirp4netns(1)选项:禁用IPv6、分配
10.0.2.0/24
发送到tap0
容器内接口,带网关10.0.2.3
,启用可在以下位置访问的DNS转发器10.0.2.3
,将MTU设置为1500字节,禁用NDP、DHCPv6和DHCP支持。pasta:-I,tap0,--ipv4-only,-a,10.0.2.0,-n,24,-g,10.0.2.2,--dns-forward,10.0.2.3,--no-ndp,--no-dhcpv6,--no-dhcp ,相当于默认的glirp4netns(1)带有Podman覆盖的选项:与上面相同,但将mtu保留为65520字节
pasta:-t,auto,-u,auto,-T,auto,-U,auto :启用基于从主机和容器端观察到的绑定端口的自动端口转发
pasta:-T,5201 :启用从容器到主机的TCP端口5201转发,使用环回接口而不是TAP接口以提高性能
如果未指定网络选项,并且 host 在YAML文件中没有配置网络模式,创建了一个新的网络堆栈,并将Pod连接到它,从而使Pod到Pod通信成为可能。
--no-hosts¶
不创建 /etc/hosts 为了这个吊舱。默认情况下,Podman管理 /etc/hosts, 添加容器自己的IP地址和来自 --add-host 。 --no-hosts 禁用此选项,则图像的 /etc/hosts 被原封不动地保存下来。
此选项与Kubernetes YAML中添加的主机冲突。
--publish = [[ip:][hostPort]:]containerPort[/protocol]¶
定义或覆盖YAML文件中的端口定义。
YAML文件和命令行中的端口列表被合并。匹配是通过使用 containerPort 菲尔德。如果 containerPort 在YAML文件和选项中都存在,后者优先。
--publish-all¶
将此选项设置为 true
将向主机公开所有端口,即使仅通过 containerPort 在K8 YAML中。就将暴露哪个端口而言, --publish 的优先级高于 hostPort 的优先级高于 containerPort 。
如果设置为 false
(这是默认设置),仅通过定义的端口 hostPort 或 --publish 在主机上发布。
--quiet , -q¶
在拉取图像时抑制输出信息
--replace¶
撕毁了由前一轮 kube play
并重新创造了豆荚。此选项用于根据Kubernetes YAML使现有Pod保持最新。
--seccomp-profile-root = path¶
Seccomp配置文件的目录路径(默认为“/var/lib/kubelet/seccomp”)。(此选项不适用于远程Podman客户端,包括Mac和Windows(不包括WSL2)计算机)
--start¶
创建Pod后启动Pod,设置为False将仅创建它。
--tls-verify¶
联系注册处时要求HTTPS并验证证书(默认: true )。如果显式设置为 true ,使用TLS验证。如果设置为 false ,不使用TLS验证。如果未指定,则使用TLS验证,除非目标注册表在 containers-registries.conf(5)
--userns = mode¶
设置容器的用户命名空间模式。
如果 --userns
如果未设置,则按如下方式确定默认值。
如果
--pod
已经设置好了,--userns
被忽略,并使用Pod的用户命名空间。如果环境变量 PODMAN_USERNS 则使用其值。
如果
userns
中指定的containers.conf
使用此值。否则,
--userns=host
都是假定的。
--userns=""
(即空字符串)是的别名 --userns=host
。
此选项与 --gidmap , --uidmap , --subuidname 和 --subgidname 。
无根用户--userns=键映射:
钥匙 |
主机用户 |
容器用户 |
---|---|---|
自动 |
$UID |
NIL(主机用户UID未映射到容器。) |
主机 |
$UID |
0(默认用户帐户映射到容器中的根用户。) |
保持ID |
$UID |
$UID(将用户帐户映射到容器内的相同UID。) |
Keep-id:uid=200,gid=210 |
$UID |
200:210(将用户帐户映射到容器内指定的UID、GID值。) |
Nommap |
$UID |
NIL(主机用户UID未映射到容器。) |
有效 mode 值包括:
auto [:OPTIONS,...] :自动创建唯一的用户命名空间。
rootful mode
:--userns=auto
标志要求用户名 containers 在/etc/subuid和/etc/subgid文件中指定,并允许Podman容器分配未使用的从属用户ID范围。Example: `containers:2147483647:2147483648`.
rootless mode
:将使用/etc/subuid和/etc/subgid文件中的用户。注运行单个容器而不使用--userns=AUTO将使用整个范围的UID,并且不允许进一步细分。参见子ID(5)。
Podman从分配唯一范围的UID和GID containers
从属用户ID。范围的大小基于映像中所需的UID数量。UID和GID的数量可以用 size
选择。
该选项 --userns=keep-id
使用用户的所有子ID和子ID。该选项 --userns=nomap
使用除用户自己的ID之外的用户的所有子ID和子ID。使用 --userns=auto
启动新容器时不起作用,只要启动时 --userns=keep-id
或 --userns=nomap
。
有效 auto
选项:
gidmapping =CONTAINER_GID:HOST_GID:SIZE:强制在用户命名空间中存在GID映射。
size =SIZE:指定自动用户命名空间的显式大小。例如:
--userns=auto:size=8192
。如果size
未指定,auto
估计用户命名空间的大小。uidmapping =CONTAINER_UID:HOST_UID:SIZE:强制在用户命名空间中存在UID映射。
中的主机UID和GID gidmapping 和 uidmapping 可以选择性地使用前缀 @
象征。在这种情况下,Podman将查找与主机ID对应的中间ID,并将找到的中间ID映射到容器ID。有关详情,请参阅 --uidmap 。
容器: id:加入指定容器的用户命名空间。
host 或 "" (空字符串):在调用方的用户命名空间中运行。容器中运行的进程与调用用户启动的任何其他进程在主机上具有相同的权限。
keep-id :创建一个用户命名空间,其中当前用户的UID:GID映射到容器中的相同值。对于由根创建的容器,当前映射被创建到新的用户名称空间。
有效 keep-id
选项:
uid =UID:覆盖用于将当前用户映射到的容器内的UID。
gid =GID:覆盖用于将当前用户映射到的容器内的GID。
nomap :创建一个用户命名空间,其中当前无根用户的UID:GID未映射到容器中。根用户创建的容器不允许使用此选项。
ns: NAMESPACE:在给定的现有用户名称空间中运行Pod。
--wait , -w¶
在前台运行Pod和Containers。默认值为FALSE。
任何时候你都可以跑 podman pod ps
在另一个Shell中查看运行的Pod和容器的列表。
当连接到tty模式时,您可以通过按Ctrl-C组合键或接收任何其他中断信号来终止吊舱和容器。
使用创建的所有Pod、容器和卷 podman kube play
在退出时被移除。
EXAMPLES¶
重新创建指定的主机YAML文件中描述的Pod和容器。
$ podman kube play demo.yml
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
重新创建在发送到标准输入的YAML文件中指定的Pod和容器。
$ cat demo.yml | podman kube play -
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
按照指定的YAML文件中的描述拆除Pod和容器。
$ podman kube play --down demo.yml
Pods stopped:
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
Pods removed:
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
提供多个配置映射文件作为指定Pod和容器内的环境变量的源。
$ podman kube play demo.yml --configmap configmap-foo.yml,configmap-bar.yml
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
$ podman kube play demo.yml --configmap configmap-foo.yml --configmap configmap-bar.yml
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
创建一个连接到两个网络的Pod,每个网络上都有一个静态IP。
$ podman kube play demo.yml --network net1:ip=10.89.1.5 --network net2:ip=10.89.10.10
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
请考虑到,必须首先使用podman-network-create(1)创建网络。
从指向YAML文件的URL创建并拆卸。
$ podman kube play https://podman.io/demo.yml
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
$ podman kube play --down https://podman.io/demo.yml
Pods stopped:
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
Pods removed:
52182811df2b1e73f36476003a66ec872101ea59034ac0d4d3a7b40903b955a6
podman kube play --down
如果URL指向的YAML文件已更改或更改,则不能使用该URL。
Podman Kube Play支持¶
本文档概述了当前受支持的Kube YAML字段 podman kube play 指挥部。
注: N/A 意味着该选项在单节点Podman环境中不受支持。
Pod字段¶
字段 |
支持 |
---|---|
集装箱 |
✅ |
初始化容器 |
✅ |
ImagePull秘密 |
不是 |
启用服务链接 |
不是 |
os.name |
不是 |
卷数 |
✅ |
节点选择器 |
不适用 |
节点名称 |
不适用 |
affinity.nodeAffinity |
不适用 |
affinity.podAffinity |
不适用 |
affinity.podAntiAffinity |
不适用 |
tolerations.key |
不适用 |
tolerations.operator |
不适用 |
tolerations.effect |
不适用 |
tolerations.tolerationSeconds |
不适用 |
计划程序名称 |
不适用 |
运行时类名称 |
不是 |
优先级类名称 |
不是 |
优先性 |
不是 |
topologySpreadConstraints.maxSkew |
不适用 |
topologySpreadConstraints.topologyKey |
不适用 |
topologySpreadConstraints.whenUnsatisfiable |
不适用 |
topologySpreadConstraints.labelSelector |
不适用 |
topologySpreadConstraints.minDomains |
不适用 |
重新启动策略 |
✅ |
终止宽限期秒 |
✅ |
活动死线秒数 |
不是 |
readinessGates.conditionType |
不是 |
主机名 |
✅ |
设置主机名为完全限定的域名 |
不是 |
子域 |
不是 |
hostAliases.hostnames |
✅ |
hostAliases.ip |
✅ |
dnsConfig.nameservers |
✅ |
dnsConfig.options.name |
✅ |
dnsConfig.options.value |
✅ |
dnsConfig.searches |
✅ |
Dns策略 |
不是 |
主机网络 |
✅ |
主机PID |
✅ |
主机IPC |
✅ |
共享进程命名空间 |
✅ |
服务帐户名称 |
不是 |
自动装载服务帐户令牌 |
不是 |
securityContext.runAsUser |
✅ |
securityContext.runAsNonRoot |
不是 |
securityContext.runAsGroup |
✅ |
securityContext.supplementalGroups |
✅ |
securityContext.fsGroup |
不是 |
securityContext.fsGroupChangePolicy |
不是 |
securityContext.seccompProfile.type |
不是 |
securityContext.seccompProfile.localhostProfile |
不是 |
securityContext.seLinuxOptions.level |
✅ |
securityContext.seLinuxOptions.role |
✅ |
securityContext.seLinuxOptions.type |
✅ |
securityContext.seLinuxOptions.user |
✅ |
securityContext.sysctls.name |
✅ |
securityContext.sysctls.value |
✅ |
securityContext.windowsOptions.gmsaCredentialSpec |
不是 |
securityContext.windowsOptions.hostProcess |
不是 |
securityContext.windowsOptions.runAsUserName |
不是 |
容器字段¶
字段 |
支持 |
---|---|
名字 |
✅ |
图像 |
✅ |
图像拉动策略 |
✅ |
命令 |
✅ |
ARGS |
✅ |
工作方向 |
✅ |
ports.containerPort |
✅ |
ports.hostIP |
✅ |
ports.hostPort |
✅ |
ports.name |
✅ |
ports.protocol |
✅ |
env.name |
✅ |
env.value |
✅ |
env.valueFrom.configMapKeyRef.key |
✅ |
env.valueFrom.configMapKeyRef.name |
✅ |
env.valueFrom.configMapKeyRef.optional |
✅ |
env.valueFrom.fieldRef |
✅ |
env.valueFrom.resourceFieldRef |
✅ |
env.valueFrom.secretKeyRef.key |
✅ |
env.valueFrom.secretKeyRef.name |
✅ |
env.valueFrom.secretKeyRef.optional |
✅ |
envFrom.configMapRef.name |
✅ |
envFrom.configMapRef.optional |
✅ |
envFrom.prefix |
不是 |
envFrom.secretRef.name |
✅ |
envFrom.secretRef.optional |
✅ |
volumeMounts.mountPath |
✅ |
volumeMounts.name |
✅ |
volumeMounts.mountPropagation |
不是 |
volumeMounts.readOnly |
✅ |
volumeMounts.subPath |
不是 |
volumeMounts.subPathExpr |
不是 |
volumeDevices.devicePath |
不是 |
volumeDevices.name |
不是 |
resources.limits |
✅ |
resources.requests |
✅ |
lifecycle.postStart |
不是 |
lifecycle.preStop |
不是 |
终止消息路径 |
不是 |
终止消息策略 |
不是 |
活泼的可能性 |
✅ |
就绪性可能性 |
不是 |
初创公司可能 |
不是 |
securityContext.runAsUser |
✅ |
securityContext.runAsNonRoot |
不是 |
securityContext.runAsGroup |
✅ |
securityContext.readOnlyRootFilesystem |
✅ |
securityContext.procMount |
✅ |
securityContext.privileged |
✅ |
securityContext.allowPrivilegeEscalation |
✅ |
securityContext.capabilities.add |
✅ |
securityContext.capabilities.drop |
✅ |
securityContext.seccompProfile.type |
不是 |
securityContext.seccompProfile.localhostProfile |
不是 |
securityContext.seLinuxOptions.level |
✅ |
securityContext.seLinuxOptions.role |
✅ |
securityContext.seLinuxOptions.type |
✅ |
securityContext.seLinuxOptions.user |
✅ |
securityContext.windowsOptions.gmsaCredentialSpec |
不是 |
securityContext.windowsOptions.hostProcess |
不是 |
securityContext.windowsOptions.runAsUserName |
不是 |
标准 |
不是 |
StdinOnce |
不是 |
TTY |
不是 |
永久卷声明字段¶
字段 |
支持 |
---|---|
卷名 |
不是 |
存储类名称 |
✅ |
卷模式 |
不是 |
访问模式 |
✅ |
选择器 |
不是 |
resources.limits |
不是 |
resources.requests |
✅ |
配置映射字段¶
字段 |
支持 |
---|---|
二进制数据 |
✅ |
数据 |
✅ |
不可变的 |
不是 |
部署字段¶
字段 |
支持 |
---|---|
复制品 |
✅(忽略实际副本计数并设置为1) |
选择器 |
✅ |
模板 |
✅ |
最小就绪秒数 |
不是 |
strategy.type |
不是 |
strategy.rollingUpdate.maxSurge |
不是 |
strategy.rollingUpdate.maxUnavailable |
不是 |
修订历史限制 |
不是 |
进度死线秒数 |
不是 |
已暂停 |
不是 |
守护程序集字段¶
字段 |
支持 |
---|---|
选择器 |
✅ |
模板 |
✅ |
最小就绪秒数 |
不是 |
strategy.type |
不是 |
strategy.rollingUpdate.maxSurge |
不是 |
strategy.rollingUpdate.maxUnavailable |
不是 |
修订历史限制 |
不是 |
另请参阅¶
podman(1) , podman-kube(1) , podman-kube-down(1) , podman-network-create(1) , podman-kube-generate(1) , podman-build(1) , containers-certs.d(5)