Curl 无法通过K8s API读取资源

Curl 无法通过K8s API读取资源,curl,kubernetes,rbac,Curl,Kubernetes,Rbac,UDPDATED 我试图通过部署在K8s上的pod中的curl获取资源。 虽然我能够通过curl请求获取pod列表,但在configmaps和节点上却不能 这里是我正在使用的角色绑定(为pods工作) 当我尝试获取节点列表时: curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/

UDPDATED
我试图通过部署在K8s上的pod中的curl获取资源。
虽然我能够通过curl请求获取pod列表,但在configmaps和节点上却不能

这里是我正在使用的角色绑定(为pods工作)

当我尝试获取节点列表时:

    curl -sSk -H "Authorization: Bearer $KUBE_TOKEN"       https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/nodes
        {
          "kind": "Status",
          "apiVersion": "v1",
          "metadata": {
            
          },
          "status": "Failure",
          "message": "nodes is forbidden: User \"system:serviceaccount:test:test\" cannot list resource \"nodes\" in API group \"\" at the cluster scope",
  "reason": "Forbidden",
  "details": {
    "kind": "nodes"
  },
对于configmaps也一样:

curl -sSk -H "Authorization: Bearer $KUBE_TOKEN"       https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/default/configmaps
    {
      "kind": "Status",
      "apiVersion": "v1",
      "metadata": {
        
      },
      "status": "Failure",
      "message": "configmaps is forbidden: User \"system:serviceaccount:test:test\" cannot list resource \"configmaps\" in API group \"\" in the namespace \"default\"",
      "reason": "Forbidden",
      "details": {
        "kind": "configmaps"
      },
      "code": 403
相反,它在吊舱上工作。

可能是什么问题?RoleBinding上的配置错误?

要让
测试ro
角色访问列表配置映射,必须以复数形式指定资源名称。这可能就是为什么列出POD有效,但列出ConfigMaps无效的原因。因此,应按如下方式指定角色:

apiVersion:rbac.authorization.k8s.io/v1 种类:角色 元数据: 名称:测试ro 规则: -apiGroups:[“”]#“”表示核心API组 资源:[“吊舱”、“配置地图”] 动词:[“获取”、“列表”] 列出节点需要一些不同的配置,因为节点是集群级资源而不是命名空间资源

此外,列表节点的API url没有名称空间。正确的url应该是https://$KUBERNETES\u服务\u主机:$KUBERNETES\u端口\u 443\u TCP\u端口/api/v1/nodes

工作的
ClusterRole
示例如下:

apiVersion:rbac.authorization.k8s.io/v1 种类:ClusterRole 元数据: 名称:测试集群角色 规则: -apiGroups:[“”]#“”表示核心API组 资源:[“节点”] 动词:[“获取”、“列表”]
curl -sSk -H "Authorization: Bearer $KUBE_TOKEN"       https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/default/configmaps
    {
      "kind": "Status",
      "apiVersion": "v1",
      "metadata": {
        
      },
      "status": "Failure",
      "message": "configmaps is forbidden: User \"system:serviceaccount:test:test\" cannot list resource \"configmaps\" in API group \"\" in the namespace \"default\"",
      "reason": "Forbidden",
      "details": {
        "kind": "configmaps"
      },
      "code": 403