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

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是否可以运行特权容器 容

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

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

  • pod是否可以运行特权容器
  • 容器的SELinux上下文
  • 容器用户ID
  • 拥有pod卷的
    FSGroup
    的分配
  • 允许的补充组的配置
  • 容器是否需要使用只读根文件系统
  • 卷类型的使用
SCC由控制pod可以访问的安全功能的设置和策略组成。如果我正确理解了您的问题,您希望检查
RunAsUser
策略:

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

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

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

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


  • 有关更多信息,请查看。

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

    • pod是否可以运行特权容器
    • 容器的SELinux上下文
    • 容器用户ID
    • 拥有pod卷的
      FSGroup
      的分配
    • 允许的补充组的配置
    • 容器是否需要使用只读根文件系统
    • 卷类型的使用
    SCC由控制pod可以访问的安全功能的设置和策略组成。如果我正确理解了您的问题,您希望检查
    RunAsUser
    策略:

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

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

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

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


  • 有关更多信息,请查看。

    您也提到的默认用户是什么?你能提供更多细节吗?基于您所说的使用openshift的快速猜测。您所指的默认用户也是什么?你能提供更多细节吗?基于您所说的使用openshift的快速猜测。