1

我正在尝试使用 Openshift REST-API 来获取我的 cron 作业的状态。我是我的命名空间的管理员,但我没有集群访问权限,所以我无法在集群级别做任何事情。

现在,为了获得状态,我首先创建角色:

# oc create role podreader --verb=get --verb=list --verb=watch --resource=pods,cronjobs.batch,jobs.batch
role.rbac.authorization.k8s.io/podreader created

但是,当我尝试将角色添加到服务帐户时,它会失败。

# oc create serviceaccount nagios 
# oc policy add-role-to-user podreader system:serviceaccount:uc-immoscout-dev:nagios
Warning: role 'podreader' not found
Error from server (NotFound): clusterroles.rbac.authorization.k8s.io "podreader" not found

我的主要目的是获取我正在安排的 cron 作业、作业和 pod 的状态。

4

1 回答 1

3

您必须添加--role-namespace=namespace-of-roleoc policy add-role-to-user命令中,否则该角色将被视为集群角色。

从文档:

--role-namespace='':角色所在的命名空间:空表示集群策略中定义的角色

于 2020-09-15T06:47:54.303 回答