
我使用kubectl exec -it my-pod-0 – / bin / sh登录我的pod,然后在提示符下运行以下命令:
$CA_CERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt$TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)$nameSPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)$curl --cacert $CA_CERT -H "Authorization: Bearer $TOKEN" "https://kubernetes/API/v1/namespaces/$nameSPACE/services/"
不幸的是,返回了403 ForbIDden错误:
{ "kind": "Status","APIVersion": "v1","Metadata": { },"status": "Failure","message": "services is forbIDden: User \"system:serviceaccount:default:default\" cannot List services in the namespace \"default\": UnkNown user \"system:serviceaccount:default:default\"","reason": "ForbIDden","details": { "kind": "services" },"code": 403 我究竟做错了什么?
解决方法 你没有做错任何事.该pod的服务帐户(在pod的serviceAccountname中指定)根本没有任何API权限.您可以向该服务帐户授予视图角色,如下所示:
kubectl create rolebinding default-vIEwer \ --clusterrole=vIEw \ --serviceaccount=default:default \ --namespace=default
有关授予服务帐户权限的详细信息,请参阅https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions.
总结以上是内存溢出为你收集整理的如何使用curl从pod中访问Kubernetes API?全部内容,希望文章能够帮你解决如何使用curl从pod中访问Kubernetes API?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)