在Pod
规范中,有一个选项可以指定需要由所有容器运行的用户ID
podSecurityContext:
runAsUser: <a numeric Id>
有没有一种方法可以改变用户名,就像我们对windows pod和容器的方法一样,比如下面的
securityContext:
windowsOptions:
runAsUserName: "ContainerUser"
不幸的是,没有这样的方法。WindowsSecurityContextOptions
包含特定于Windows的选项和凭据。PodSecurityContext允许您使用:
securityContext.runAsUser
(int64(运行容器进程入口点的UID。默认为用户在图像元数据中指定(如果未指定(。也可能设置在SecurityContext。如果在SecurityContext和PodSecurityContext,SecurityContext中指定的值该容器的优先级。
securityContext.runAsNonRoot
(布尔值(指示容器必须以非root用户身份运行。如果为true,则Kubelet将在运行时验证映像,以确保它不会以UID 0(root(身份运行,如果启动容器,则无法启动容器。如果unset或false,则不会执行此类验证。也可以设置在SecurityContext中。如果在SecurityContext和PodSecurityContext,SecurityContext中指定的值优先
securityContext.runAsGroup
(int64(运行容器进程入口点的GID。使用运行时如果未设置,则为默认值。也可以在SecurityContext中设置。如果同时设置SecurityContext和PodSecurityContext,中指定的值SecurityContext优先于该容器。
尝试对runAsUser
使用String而不是Integer将导致错误:
invalid type for io.k8s.api.core.v1.SecurityContext.runAsUser: got "string", expected "integer"