小编Mar*_*iro的帖子

容器中的 Kubernetes 权限被拒绝

我的公司购买了我们尝试在 IBM 云上部署的软件,使用 kubernetes 并提供了私有 docker 存储库。部署后,总是会出现 Kubernetes 错误:“Back-off restarting failed container”。所以我阅读日志以了解容器重新启动的原因,这是错误:

Caused by: java.io.FileNotFoundException: /var/yseop-log/yseop-manager.log (Permission denied)
Run Code Online (Sandbox Code Playgroud)

所以我推断我只需要更改 Kubernetes 文件中的权限。由于我使用的是部署,我尝试了以下 initContainer :

initContainers:
    - name: permission-fix
      image: busybox
      command: ['sh', '-c']
      args: ['chmod -R 777 /var']
      volumeMounts:
        - mountPath: /var/yseop-engine
          name: yseop-data
        - mountPath: /var/yseop-data/yseop-manager
          name: yseop-data
        - mountPath: /var/yseop-log
          name: yseop-data
Run Code Online (Sandbox Code Playgroud)

这没有用,因为我不允许以非 root 用户身份在只读文件夹上执行 chmod。

所以我尝试重新安装这些卷,但也失败了,因为我不是 root 用户。

然后我发现了以用户和组身份运行。为了找出我必须在安全上下文中写入哪个用户和组,我阅读了 dockerfile,这是用户和组:

 USER 1001:0
Run Code Online (Sandbox Code Playgroud)

所以我想我可以在我的部署文件中写这个:

  securityContext: 
      runAsUser: 1001  
      rusAsGroup: 0
Run Code Online (Sandbox Code Playgroud)

显然,这也不起作用,因为我不允许作为 0 组运行

所以我仍然不知道该怎么做才能正确部署这个镜像。在 m 计算机上执行 docker pull 和 exec …

docker kubernetes ibm-cloud

7
推荐指数
2
解决办法
8851
查看次数

标签 统计

docker ×1

ibm-cloud ×1

kubernetes ×1