gpt4 book ai didi

kubernetes - Kubernetes从端点REST API获取信息

转载 作者:行者123 更新时间:2023-12-02 12:10:52 25 4
gpt4 key购买 nike

我试图创建一个具有权限的服务帐户,以获取有关端点Pod IP的信息并获取权限问题。
创建服务帐户并为其授予正确的权限:

$ kubectl create role endpoints-reader --verb=get --verb=list --resource=endpoints
$ kubectl create serviceaccount endpoints-reader-sa
$ kubectl create rolebinding default-endpoints-reader --role=endpoints-reader --serviceaccount=endpoints-reader-sa:endpoints-reader-sa
将此sa添加到部署YAML文件中:
...
spec:
serviceAccountName: endpoints-reader-sa
containers:
- name: ...
我说出了Pod并登录到它(ssh)。现在,我想运行一个REST调用来提取信息:
$ TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token);
$ curl https://kubernetes.default.svc/api/v1/namespaces/XXX/endpoints --silent --header "Authorization: Bearer $TOKEN" --insecure
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {

},
"status": "Failure",
"message": "endpoints is forbidden: User \"system:serviceaccount:XXX:endpoints-reader-sa\" cannot list resource \"endpoints\" in API group \"\" in the namespace \"XXX\"",
"reason": "Forbidden",
"details": {
"kind": "endpoints"
},
"code": 403
}
我做错了什么?

最佳答案

好...发现了问题。
因此,此行:

kubectl create rolebinding default-endpoints-reader --role=endpoints-reader --serviceaccount=endpoints-reader-sa:endpoints-reader-sa
应该更改为:
kubectl create rolebinding default-endpoints-reader --role=endpoints-reader --serviceaccount=XXX:endpoints-reader-sa
其中 XXX是 namespace 名称。
类似的问题,您可以找到 here

关于kubernetes - Kubernetes从端点REST API获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63151671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com