Openshift pod运行时用户id与Dockerfile中的用户不匹配



我们有"默认";Dockerfile和入口点shell脚本中的用户,这些脚本需要在运行时执行。当我们将其部署到Openshift集群(4.6(中时,pod有不同的用户,由于这个入口点shell脚本失败,因此应用程序无法启动。请求您建议如何执行那些shell脚本,即使用户在POD 中也是如此

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

有关更多信息,请查看官方的openshift文档。

相关内容

最新更新