使用 REST_API 进行 Openshift 监控

Openshift Monitoring with REST_API

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

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

# 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-jobs、jobs 和我正在安排的 pods 的状态。

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

来自文档:

--role-namespace='': namespace where the role is located: empty means a role defined in cluster policy