(1)需求1:查看所有可用的集群角色
kubectl get clusterroles
引出话题:curl命令请求在默认命名空间中的服务,无法从API Server中获得回应
#!/bin/bash
# 参考博客:https://blog.csdn.net/lanwp5302/article/details/88749816
APISERVER=$(kubectl config view | grep server | cut -f 2- -d ":" | tr -d " ")
token=$(kubectl get secret calico-kube-controllers-token-bjmvn -n kube-system -o jsonpath={".data.token"}| base64 -d)
#curl -k -H "Authorization: Bearer ${token}" ${APISERVER}/api
#curl -k -H "Authorization: Bearer ${token}" ${APISERVER}/api
curl -k -H "Authorization: Bearer ${token}" ${APISERVER}/api/v1/default
报错
实质
(1)请记住:Kubernetes遵循封闭开放的惯例,这意味着在默认情况下用户和service account'没有任何权限'
(2)为了满足这一请求,我们需要'创建一个角色绑定',将默认service account和适当的角色相关联,这一步与我们将角色绑定到Bob的方式类似,后者授予他列出pod的权限
(3)测试-->为默认service account创建一个角色绑定
解决策略
# 您可以随意为默认service account创建其他绑定,以检查RBAC如何扩展到pod
kubectl create rolebinding default-view --clusterrole=view --serviceaccount=default:default --namespace=default
思考:以上'没有解决问题的原因'