Kubernetes:以 root 身份运行容器

Rud*_*koŭ 5 root security-context kubernetes kubernetes-helm kubernetes-pod

我确实了解这样做的缺点,但是我的图像只能与在其中运行 cmd 的 root 用户一起使用。

服务器 kubernetes 版本是:v1.19.14. 我的里面deployment.yaml有:

spec:
  containers:
    - name: myapp
      securityContext:
        allowPrivilegeEscalation: false
        runAsUser: 0
      command: ...
      image:...
Run Code Online (Sandbox Code Playgroud)

但是当describe rs我看到以下内容时:

  Type     Reason        Age                From                   Message
  ----     ------        ----               ----                   -------
  Warning  FailedCreate  0s (x13 over 21s)  replicaset-controller  Error creating: pods "myapp-7cdd994c56-" is forbidden: PodSecurityPolicy: unable to admit pod: [spec.containers[0].securityContext.runAsUser: Invalid value: 0: running with the root UID is forbidden]
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Ort*_*kni 0

错误消息显示:

PodSecurityPolicy:无法接纳 pod:[spec.containers[0].securityContext.runAsUser:无效值:0:禁止使用 root UID 运行]

Pod 安全策略在文档中定义为:

[...] 集群级资源,用于控制 Pod 规范的安全敏感方面。PodSecurityPolicy 对象定义了 pod 运行时必须满足的一组条件,以便被系统接受 [...]

您使用的集群的 Pod 安全策略禁止使用根容器(请参阅Pod 安全策略 - 用户和组)

您必须自行更改 Pod 安全策略或要求集群管理员这样做。

注意:

PodSecurityPolicy 自 Kubernetes v1.21 起已弃用,并将在 v1.25 中删除。