Openshift3 中的“用户“系统”无法在集群范围内获得 securitycontextconstraints

Car*_*rto 2 windows hyper-v openshift openshift-client-tools docker-machine

如果我尝试向在 Windows10 Pro 和 Hyper-V 中运行的本地 OpenShift 多合一集群添加安全约束,openshift 客户端会收到以下消息:

c:\openshift\oc.exe adm policy add-scc-to-user anyuid -z default
Error from server (Forbidden): User "system" cannot get securitycontextconstraints at the cluster scope"
Run Code Online (Sandbox Code Playgroud)

Openshift 实例是由 docker 机器使用以下步骤创建的:

1) docker-machine create -d "hyperv" --engine-insecure-registry 172.30.0.0/16 --hyperv-virtual-switch "openshift" openshift 
2) oc cluster up --docker-machine=openshift
Run Code Online (Sandbox Code Playgroud)

是否有任何配置允许系统用户访问 securitycontextconstraints?

Gra*_*ton 5

尝试运行:

docker exec origin oc adm policy add-scc-to-user anyuid -z default -n projectname
Run Code Online (Sandbox Code Playgroud)

这将oc在 OpenShift 集群内部运行,它应该以管理员身份运行。

我还建议运行:

docker exec origin oc adm policy add-cluster-role-to-group sudoer system:authenticated yourusername
Run Code Online (Sandbox Code Playgroud)

这样,您将来可以通过运行以下命令来运行管理命令:

oc adm policy add-scc-to-user anyuid -z default -n projectname --as system:admin
Run Code Online (Sandbox Code Playgroud)

也就是说,通过使用--as system:admin来模拟管理员。

您可能需要考虑使用 Minishift 而不是oc cluster up因为它从内存中默认授予developer用户sudoer角色,因此可用于--as system:admin执行管理命令。