Kubernetes runAsNonRoot 失败:CreateContainerConfigError

Vis*_*ant 3 kubernetes kubernetes-helm

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

spec:
  securityContext:
    runAsNonRoot: true
Run Code Online (Sandbox Code Playgroud)

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

容器具有 runAsNonRoot 并且图像具有非数字用户(默认),无法验证用户是非 root

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

Pra*_*dha 9

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

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

securityContext:
  runAsUser: 1000
Run Code Online (Sandbox Code Playgroud)

所以你securityContext应该是这样的:

securityContext:
  fsGroup: 2000
  runAsNonRoot: true
  runAsUser: 1000
Run Code Online (Sandbox Code Playgroud)

这里查看官方文档