0

Pod规范中,有一个选项来指定需要由所有容器运行的用户 ID

podSecurityContext:
  runAsUser: <a numeric Id>

有没有办法我们也可以更改用户名,就像我们对 windows pod 和容器的方式一样,如下所示

  securityContext:
    windowsOptions:
      runAsUserName: "ContainerUser"

4

1 回答 1

1

不幸的是,没有这样的方法。WindowsSecurityContextOptions包含特定于 Windows 的选项和凭据。PodSecurityContext允许您使用:

  • securityContext.runAsUser(int64)

运行容器进程入口点的 UID。如果未指定,则默认为图像元数据中指定的用户。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则在 SecurityContext 中指定的值优先于该容器。

  • securityContext.runAsNonRoot(布尔值)

指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证镜像,以确保它不会以 UID 0(root)身份运行,如果是,则无法启动容器。如果未设置或为 false,则不会执行此类验证。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则在 SecurityContext 中指定的值优先。

  • securityContext.runAsGroup(int64)

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则在 SecurityContext 中指定的值优先于该容器。

尝试使用 String 而不是 Integer forrunAsUser将导致错误:

invalid type for io.k8s.api.core.v1.SecurityContext.runAsUser: got "string", expected "integer"
于 2021-06-11T08:39:03.923 回答