0

如本文所述,我想minishift从 Docker Hub运行一个容器。由于 Docker Hub 中的映像以 root 身份运行且 OpenShift 不允许以 root 身份运行容器,因此我使用此命令来覆盖此约束。我以.rootsystem:admin

oc adm policy add-scc-to-user anyuid -z default

但是,我不断收到此错误:

Error from server (NotFound): the server could not find the requested resource

首先,不清楚,缺少哪个资源,其次,覆盖是否适用minishiftanyuidSCC 确实存在。

oc get scc
NAME               KIND
anyuid             SecurityContextConstraints.v1.security.openshift.io
hostaccess         SecurityContextConstraints.v1.security.openshift.io
hostmount-anyuid   SecurityContextConstraints.v1.security.openshift.io
hostnetwork        SecurityContextConstraints.v1.security.openshift.io
nonroot            SecurityContextConstraints.v1.security.openshift.io
privileged         SecurityContextConstraints.v1.security.openshift.io
restricted         SecurityContextConstraints.v1.security.openshift.io
4

1 回答 1

0

您需要system:admin从主节点(root 用户)登录。

(如果您想远程进行管理员操作,您可以使用以下命令从主节点为单个用户分配集群管理员角色oc adm policy add-cluster-role-to-user cluster-admin <user>

首先,在项目中创建一个 ServiceAccount (SA)。

oc project <project>
oc create sa nfs-sa

将安全上下文约束添加到 SA。

oc adm policy add-scc-to-user privileged -z nfs-sa

然后,在部分的 deploymentconfig/pod config 中提及 serviceaccount spec

serviceAccount: nfs-sa
serviceAccountName: nfs-sa

谢谢。

于 2019-10-02T11:07:36.860 回答