Kubernetes 用户id与Dockerfile中的用户不匹配的Openshift pod运行
Dockerfile和entrypoint shell脚本中有“默认”用户,需要在运行时执行。当我们将其部署到Openshift集群(4.6)中时,pod拥有不同的用户,并且由于该入口点shell脚本失败,因此应用程序无法启动。请您建议如何执行这些shell脚本,即使用户在POD中Openshift提供了安全上下文约束(SCC)来控制POD的权限。使用它们,您可以控制pod或容器集合可以执行的权限/操作,以及它们可以访问的资源。 SCCs允许管理员控制的两件事:Kubernetes 用户id与Dockerfile中的用户不匹配的Openshift pod运行,kubernetes,openshift,operator-sdk,Kubernetes,Openshift,Operator Sdk,Dockerfile和entrypoint shell脚本中有“默认”用户,需要在运行时执行。当我们将其部署到Openshift集群(4.6)中时,pod拥有不同的用户,并且由于该入口点shell脚本失败,因此应用程序无法启动。请您建议如何执行这些shell脚本,即使用户在POD中Openshift提供了安全上下文约束(SCC)来控制POD的权限。使用它们,您可以控制pod或容器集合可以执行的权限/操作,以及它们可以访问的资源。 SCCs允许管理员控制的两件事: pod是否可以运行特权容器 容
- pod是否可以运行特权容器
- 容器的SELinux上下文
- 容器用户ID
- 拥有pod卷的
的分配FSGroup
- 允许的补充组的配置
- 容器是否需要使用只读根文件系统
- 卷类型的使用
RunAsUser
策略:
MustRunAs
-需要配置runAsUser
。使用配置的runAsUser
作为默认值。根据配置的runAsUser
进行验证
MustRunAsRange
-如果不使用预先分配的值,则需要定义最小值和最大值。使用最小值作为默认值。根据整个允许范围进行验证
MustRunAsNonRoot
-要求提交pod时使用非零的runAsUser
或在图像中定义USER
指令。没有提供默认值
RunAsAny
-未提供默认值。允许指定任何runAsUser
有关更多信息,请查看。Openshift提供了安全上下文约束(SCC)来控制POD的权限。使用它们,您可以控制pod或容器集合可以执行的权限/操作,以及它们可以访问的资源。 SCCs允许管理员控制的两件事:
- pod是否可以运行特权容器
- 容器的SELinux上下文
- 容器用户ID
- 拥有pod卷的
的分配FSGroup
- 允许的补充组的配置
- 容器是否需要使用只读根文件系统
- 卷类型的使用
RunAsUser
策略:
MustRunAs
-需要配置runAsUser
。使用配置的runAsUser
作为默认值。根据配置的runAsUser
进行验证
MustRunAsRange
-如果不使用预先分配的值,则需要定义最小值和最大值。使用最小值作为默认值。根据整个允许范围进行验证
MustRunAsNonRoot
-要求提交pod时使用非零的runAsUser
或在图像中定义USER
指令。没有提供默认值
RunAsAny
-未提供默认值。允许指定任何runAsUser
有关更多信息,请查看。您也提到的默认用户是什么?你能提供更多细节吗?基于您所说的使用openshift的快速猜测。您所指的默认用户也是什么?你能提供更多细节吗?基于您所说的使用openshift的快速猜测。