Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes runAsNonRoot失败:CreateContainerConfiger错误_Kubernetes_Kubernetes Helm - Fatal编程技术网

Kubernetes runAsNonRoot失败:CreateContainerConfiger错误

Kubernetes runAsNonRoot失败:CreateContainerConfiger错误,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我在pod中添加了一个安全上下文,如下所示: spec: securityContext: runAsNonRoot: true spec: runAsUser: rule: MustRunAsNonRoot containers: - name: <container-name> 运行pod时,我收到错误消息(kubectl get pod name-o=yaml): 容器具有runAsNonRoot,图像具有非数字用户(默认), 无法验证用

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

spec:
  securityContext:
    runAsNonRoot: true
spec:
  runAsUser:
    rule: MustRunAsNonRoot
  containers:
    - name: <container-name>
运行pod时,我收到错误消息(kubectl get pod name-o=yaml):

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


这条信息很直观,但在我看来应该是非常直接的,我在这里遗漏了什么?

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

因此,对于UID=1000的用户,您可以在pod定义中这样做:

securityContext:
  runAsUser: 1000
因此,您的
securityContext
应该如下所示:

securityContext:
  fsGroup: 2000
  runAsNonRoot: true
  runAsUser: 1000

在正式文档中签出它

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

spec:
  securityContext:
    runAsNonRoot: true
spec:
  runAsUser:
    rule: MustRunAsNonRoot
  containers:
    - name: <container-name>
spec:
runAsUser:
规则:MustRunAsNonRoot
容器:
-姓名:

这可以通过

确认,但是pod应该有用户的UID
999?我也看到了这个属性
spec:runAsUser:rule:MustRunAsNonRoot
这有助于以非root身份运行容器吗?这是linux用户UID。如果您想在linux系统中以centos用户身份运行pod,则需要提供centos用户的uid。您可以使用
id-u
查找uid是的,我使用的是centos,如果您想登录到
pod
并获取用户id,那么这将是不可行的。我正在使用HELM提供securityContext,在部署时,我不知道
pod
是否具有该用户id。但似乎
MustRunAsNonRoot
可以工作。根据
kubernetes
的代码,这不是您所指的
securityContext
,而是
PodSecurityPolicy
。这解决了您的问题吗?不是真的,它禁用了权限提升,但不确定容器是否以非根用户身份运行。