Kubernetes runAsNonRoot 失败:CreateContainerConfigError

Kubernetes runAsNonRoot failing: CreateContainerConfigError

我在我的 pod 中添加了一个安全上下文,如下所示:

spec:
  securityContext:
    runAsNonRoot: true

虽然 运行 我收到错误消息的 pod (kubectl get pod pod-name -o=yaml):

container has runAsNonRoot and image has non-numeric user (default), cannot verify user is non-root

消息很直观,但在阅读后 kubernetes blog 在我看来它应该非常简单,我在这里缺少什么?

仅当您的 uid == nil 时才会出现此错误。根据错误文本,我们需要设置一个数字用户值。

因此,对于 UID=1000 的用户,您可以在 pod 定义中执行此操作,例如:

securityContext:
  runAsUser: 1000

所以你的 securityContext 应该是这样的:

securityContext:
  fsGroup: 2000
  runAsNonRoot: true
  runAsUser: 1000

查看官方文档here

您可以按如下方式添加securityContext:

spec:
  runAsUser:
    rule: MustRunAsNonRoot
  containers:
    - name: <container-name>

这可以通过 Kubernetes code

确认