1.题目
Create a service account name dev-sa in default namespace, dev-sa can create below components in dev namespace:
- Deployment
- StatefulSet
- DaemonSet
2.解析
本题目考测RBAC,题意是创建一个service account,该service account具有在命名空间dev下创建Deployment, StatefulSet, DaemonSet的权限。我们首先应创建符合题目要求的service account以及role,然后再通过role binding进行授予权限,注意题目提及到两个命名空间。3.答案
首先创建一个service account
# 创建名为dev-sa的service account
kubectl create sa dev-sa -n default
接下来赋给该SA指定权限
# 创建在dev的namespace下能create以上三个组件的role
kubectl create role sa-role -n dev \
--resource=deployment,statefulset,daemonset --verb=create
# 创建role binding,授予service account权限
kubectl create rolebinding sa-rolebinding -n dev \
--role=sa-role --serviceaccount=default:dev-sa
最后,通过以下命令验证是否成功,如返回yes,表示成功,反之不成功
kubectl auth can-i create deployment -n dev \
--as=system:serviceaccount:default:dev-sa