公开注册表的 OpenShift 权限问题

OpenShift permission issues to expose registry

我正在尝试使用以下命令公开 docker-注册表:

# oc expose service docker-registry --hostname=<hostname> -n default

来源:https://docs.openshift.com/container-platform/3.3/install_config/registry/securing_and_exposing_registry.html#access-insecure-registry-by-exposing-route

但是,我在登录的当前用户的输出中收到 "forbidden" 消息的权限问题。用户拥有 "admin" 权限。我是 OpenShift 的新手,仍在学习中。有人可以指出我如何使用上述命令公开注册表服务的正确方向吗?看起来我可能需要 "cluster-admin" 访问权限才能执行此操作,但不确定如何更改或向当前用户添加角色。

您的 admin 角色是针对什么项目的?基本上,admin 角色被授予一个项目的权限。 如上所述,您需要 cluster-admin 集群角色才能在 default 项目中使用 oc expose service 创建路由。或者您需要 default 项目的 admin 角色。每个命令如下,用于授予每个角色。

您还需要 cluster-admin 角色才能 运行 以下两个命令。

// for instance, the following command is granting cluster-admin role to admin.
$ oc adm policy add-cluster-role-to-user cluster-admin admin

// following command is granting admin of default project role to admin.
$ oc adm policy add-role-to-user admin admin -n default

如果你可以通过 ssh 以 root 身份访问 master 主机后以 system:admin 身份登录,你可以获得 cluster-admin 角色。

# oc login -u system:admin --config /etc/origin/master/admin.kubeconfig

希望对你有所帮助