1.题目概述
- 创建名称 deployment-clusterrole 的 ClusterRole
- 该角色具备创建 Deployment、Statefulset、Daemonset 的权限
- 在命名空间 app-team1 中创建名称为 cicd-token 的 ServiceAccount
绑定 ClusterRole 到 ServiceAccount,且限定命名空间为 app-team1
2.解析
需要熟悉创建 serviceaccount、clusterrole 和 rolebinding 的方法
- 需要限定在 ns 级别,因此最好使用 rolebinding
3.参考答案
# 创建命名空间
kubectl create ns app-team1
# 创建clusterrole
kubectl create clusterrole deployment-clusterrole \
--verb=create --resource=deployment,statefulset,daemonset
# 创建serviceaccount
kubectl create sa cicd-token -n app-team1
# 创建rolebinding,绑定账号和角色
kubectl create rolebinding test-rb -n app-team1 \
--clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
4.验证
# 返回yes则成功,no反之
kubectl -n app-team1 auth can-i create deployment \
--as=system:serviceaccount:app-team1:cicd-token