1、基于角色的访问控制-RBAC
1. 考题内容:
2. 答题思路:
这道题就三条命令,建议直接背熟就行。
也可以查看帮助
kubectl create clusterrole -h
kubectl create serviceaccount -h
kubectl create rolebinding -h
注意:
1、资源名称后面要加"s"
2、题目明确要求 限于namespace 下面,所以要使用 rolebinding,如果没有限制就要使用clusterrolebinding。
3、创建的rolebinding 的名字 rb-cicd-token,题目中没有要求,可以自己随便写,如果有要求,就按要求创建
3. 官网地址:
https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/
4. 考题答案:
切换环境
kubectl config use-context k8s
# 1).创建clusterrole
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
# 2).创建ServiceAccount
kubectl create serviceaccount cicd-token -n app-team1
# 3).绑定ClusterRole到ServiceAccount
kubectl create rolebinding rb-cicd-token --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token -n app-team1
5. 验证
# 1).验证创建的操作是否正确
[root@k8s-master ~]# kubectl get rolebinding rb-cicd-token -n app-team1
NAME ROLE AGE
rb-cicd-token ClusterRole/deployment-clusterrole 44s
[root@k8s-master ~]# kubectl describe rolebinding rb-cicd-token -n app-team1
Name: rb-cicd-token
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: deployment-clusterrole
Subjects:
Kind Name Namespace
---- ---- ---------
ServiceAccount cicd-token app-team1
[root@k8s-master ~]#