我们有"默认";Dockerfile和入口点shell脚本中的用户,这些脚本需要在运行时执行。当我们将其部署到Openshift集群(4.6(中时,pod有不同的用户,由于这个入口点shell脚本失败,因此应用程序无法启动。请求您建议如何执行那些shell脚本,即使用户在POD 中也是如此
Openshift提供了安全上下文约束(SCC(来控制pod的权限。使用它们,您可以控制pod或容器集合可以执行的权限/操作,以及它们可以访问的资源。SCC允许管理员控制的几件事:
- pod是否可以运行特权容器
- 容器的SELinux上下文
- 容器用户ID
- 对拥有pod卷的
FSGroup
的分配- 允许的补充组的配置
- 容器是否需要使用只读根文件系统
- 卷类型的用法
SCC由控制pod可以访问的安全功能的设置和策略组成。如果我正确理解您的问题,您需要检查RunAsUser
策略:
-
MustRunAs
-需要配置runAsUser
。使用配置的runAsUser
作为默认值。根据配置的runAsUser
进行验证。 -
MustRunAsRange
-如果不使用预先分配的值,则要求定义最小值和最大值。使用最小值作为默认值。根据整个允许范围进行验证。 -
MustRunAsNonRoot
-要求使用非零runAsUser
提交pod,或在映像中定义USER
指令。未提供默认值。 -
RunAsAny
-未提供默认值。允许指定任何runAsUser
。
有关更多信息,请查看官方的openshift文档。