问题描述
我通常使用 1111
作为容器的用户 ID 和组 ID,但是当我在 OpenShift 平台上部署我的应用程序时,我在调度 Pod 时出错。
unable to validate against any security context constraint: [fsGroup: Invalid value: []int64{1111}: 1111 is not an allowed group spec.containers[0].securityContext.securityContext.runAsUser: Invalid value: 1111: must be in the ranges: [1000750000,1000759999]]
我知道,此限制是由集群上的某些安全上下文约束 (SCC) 强加的,我的应用程序 Pod 不满足这些约束。我只是想了解一下,是否有一些关于选择这些 userId 和 GroupID 的标准规则/指南。 任何帮助将不胜感激!
解决方法
根据 RedHat 的建议,您的 image should
的构建方式使其可以 run with an arbitrary user id
。
因此,如果您遵循该规则,则无需在 Dockerfile 或部署 yaml 清单中指定用户 ID。
Openshift 将自动选择一个任意用户 ID(从范围内)并使用它运行 pod。