Kubernetes runAsNonRoot 失败:CreateContainerConfigError

问题描述 投票:0回答:3

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

spec:
  securityContext:
    runAsNonRoot: true

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

container 有 runAsNonRoot 和 image 有非数字用户(默认), 无法验证用户不是 root

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

kubernetes kubernetes-helm
3个回答
14
投票

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

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

securityContext:
  runAsUser: 1000

所以你的

securityContext
应该是这样的:

securityContext:
  fsGroup: 2000
  runAsNonRoot: true
  runAsUser: 1000

在官方文档中查看这里


0
投票

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

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

这可以用Kubernetes代码确认


0
投票

将此添加到 Dockerfile 解决了我的问题

USER 9000:9000
© www.soinside.com 2019 - 2024. All rights reserved.