【问题标题】:Openshift pod runnning with user id not matching with user in DockerfileOpenshift pod 运行时用户 ID 与 Dockerfile 中的用户不匹配
【发布时间】:2021-02-22 02:38:52
【问题描述】:

我们在 Dockerfile 和入口点 shell 脚本中有“默认”用户,需要在运行时执行。当我们将它部署到 Openshift 集群(4.6)中时,pod 有不同的用户,并且由于这个入口点 shell 脚本失败,因此应用程序没有出现。请求您建议如何在 POD 中使用用户来执行这些 shell 脚本

【问题讨论】:

  • 您所指的默认用户是什么?你能提供更多细节吗?根据您所说的使用 openshift security context constraints 快速猜测。

标签: kubernetes openshift operator-sdk


【解决方案1】:

Openshift 提供安全上下文约束 (SCC) 来控制 Pod 的权限。使用它们,您可以控制 pod 或容器集合可以执行的权限/操作以及它们可以访问的资源。 SCC 允许管理员控制的几件事:

  • pod 是否可以运行特权容器。
  • 容器的 SELinux 上下文。
  • 容器用户 ID。
  • 分配一个拥有 pod 卷的 FSGroup
  • 允许的补充组的配置。
  • 容器是否需要使用只读根文件系统。
  • 卷类型的使用。

SCC 由控制 pod 可以访问的安全功能的设置和策略组成。如果我正确理解您的问题,您想查看RunAsUser 策略:

  1. MustRunAs - 需要配置 runAsUser。使用配置的runAsUser 作为默认值。根据配置的runAsUser 进行验证。

  2. MustRunAsRange - 如果不使用预分配值,则需要定义最小值和最大值。使用最小值作为默认值。针对整个允许范围进行验证。

  3. MustRunAsNonRoot - 要求使用非零 runAsUser 提交 pod 或在映像中定义 USER 指令。没有提供默认值。

  4. RunAsAny - 未提供默认值。允许指定任何runAsUser

更多信息请查看official openshift docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2021-02-10
    • 2021-03-23
    • 2016-08-06
    • 2020-03-19
    相关资源
    最近更新 更多