我正在尝试在 openshift 集群中安装artifactory oss。我正在使用这个 Helm Chart https://charts.jfrog.io/artifactory-oss-107.39.4.tgz(警告我对 openshift 等非常陌生。我正处于陡峭的学习曲线上)
我正在以 openshift cluster-admin 帐户运行 Helm Chart
但是我收到此错误
pods "artifactory-artifactory-nginx-5c66b8c948-" is forbidden: unable to validate against any security context constraint: [provider "anyuid": Forbidden: not usable by user or serviceaccount, provider restricted: .spec.securityContext.fsGroup: Invalid value: []int64{107}: 107 is not an allowed group, spec.initContainers[0].securityContext.runAsUser: Invalid value: 104: must be in the ranges: [1000970000, 1000979999], spec.containers[0].securityContext.runAsUser: Invalid
我认为这是一个 openshift 权限错误..因为它需要更宽松的安全约束。然而,鉴于我以集群管理员身份运行,我发现这有点令人惊讶。
任何人都可以提供如何解决此问题并让artifactory-oss 在 openshift 中运行的建议吗?
提前致谢!
--
尝试传递一些选项来设置 uid 和 gild.. 我尝试从这个开始
helm升级--安装artifactory--setartifactory.uid=1001010042,artifactory.gid=1001010042,nginx.uid=1001010042,nginx.gid=1001010042,artifactory.masterKey=${MASTER_KEY},artifactory.joinKey=${JOIN_KEY },artifactory.postgresql.postgresqlPassword=$POSTGRES_PASSWORD --命名空间artifactory jfrog/artifactory-oss
选项应该设置 uids 和 gids ..但我仍然得到..似乎舵图忽略了覆盖值的努力
pods“artifactory-artifactory-nginx-5c66b8c948-”被禁止:无法针对任何安全上下文约束进行验证:[provider“anyuid”:禁止:用户或服务帐户无法使用,提供商受限:.spec.securityContext.fsGroup:无效值:[]int64{107}:107 不是允许的组,spec.initContainers[0].securityContext.runAsUser:无效值:104:必须在范围内:[1000930000, 1000939999],spec.containers[0] .securityContext.runAsUser:无效
关于 JFrog Artifactory OSS Helm Chart,其文档 Installing Artifactory 指出了一些先决条件。
- 安装 Artifactory 时,您必须以 root 用户身份运行安装或为非 root 用户提供 sudo 访问权限。
- 头盔
- 创建唯一的主密钥(Artifactory 需要唯一的主密钥),在安装过程中将其传递给模板。
- 创建包含密钥的秘密。秘密中的密钥必须命名为master-key
kubectl create secret generic my-masterkey-secret -n artifactory --from-literal=master-key=${MASTER_KEY}
- 确保在以后所有调用 Helm 安装和 Helm 升级时传递相同的主密钥。
这意味着始终传递(对于自定义主密钥)或--set artifactory.masterKey=${MASTER_KEY} (
(对于手动密钥)并验证密钥的内容是否保持不变。--set artifactory.masterKeySecretName=my-masterkey-secret
- 创建唯一的连接键:默认情况下,图表在
(values.yaml
) 中有一组。artifactory.joinKey
但是,此密钥仅用于演示目的,不应在生产环境中使用
重点是:这取决于用于安装 Helm Chart 的确切命令。
helm upgrade --install artifactory --set artifactory.masterKey=${MASTER_KEY} \
--set artifactory.joinKey=${JOIN_KEY} \
--namespace artifactory jfrog/artifactory
如此处所示,
runAsUser
中的“fsGroup
”和“values.yaml
”的值可能会对错误消息产生影响..
与其他安装不同,Helm Chart 配置是针对
进行的,然后应用于values.yaml
。system.yaml
按照以下步骤应用配置更改。
- 更改
。values.yaml
- 运行命令。
helm upgrade --install artifactory -n artifactory -f values.yaml
请参阅管理安全上下文约束了解更多信息。
看来您的错误不是由安装本身引起的,而是由 OpenShift 安全“功能”引起的,该功能会在每次安装时更改允许的 UID/GID 范围。更多信息请参见此处;就我个人而言,我发现通常可以通过策略性地 chmod 来完全避免对服务使用特定的 UID,但这也许不适合您。