Curl 无法通过K8s API读取资源
UDPDATEDCurl 无法通过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/
我试图通过部署在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