GKE RBAC角色/角色绑定以访问群集中的节点状态

问题描述 投票:1回答:1

我无法获得正确的角色绑定,以便从在GKE上的pod中运行的应用程序获取节点状态。

我可以从那里创建一个pod但不能获得节点状态。他是我创造的角色:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: node-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["nodes"]
  verbs: ["get", "watch", "list"]

这是我在执行getNodeStatus时得到的错误:

{
    "kind": "Status",
    "apiVersion": "v1",
    "metadata": {},
    "status": "Failure",
    "message": "nodes \"gke-cluster-1-default-pool-36c26e1e-2lkn\" is forbidden: User \"system:serviceaccount:default:sa-poc\" cannot get nodes/status at the cluster scope: Unknown user \"system:serviceaccount:default:sa-poc\"",
    "reason": "Forbidden",
    "details": {
        "name": "gke-cluster-1-default-pool-36c26e1e-2lkn",
        "kind": "nodes"
    },
    "code": 403
}

我尝试了一些微小的变化,但没有成功。

GKE上的Kubernetes版本是1.8.4-gke.1

任何帮助表示感谢,谢谢!

kubernetes gcp google-kubernetes-engine
1个回答
2
投票

子资源权限表示为<resource>/<subresource>,因此在角色中,您将指定resources: ["nodes","nodes/status"]

© www.soinside.com 2019 - 2024. All rights reserved.