官方参考地址:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/#privilege-escalation-prevention-and-bootstrapping # 看参考的目录可以看到:kubectl create命令行
设置答题配置环境: kubectl config use-context k8s Context: 为部署流水线创建一个新的 ClusterRole 并将其绑定到范围为特定的 namespace 的特定 ServiceAccount。 Task: 创建一个名为 deployment-clusterrole 且仅允许创建以下资源类型的新 ClusterRole: Deployment StatefulSet DaemonSet 在现有的 namespace app-team1 中创建一个名为 cicd-token 的新 ServiceAccount。 限于 namespace app-team1 中,将新的 ClusterRole deployment-clusterrole 绑定到新的 ServiceAccount cicd-token。
# 帮助命令 kubectl create clusterrole -h kubectl create serviceaccount -h kubectl create rolebinding -h
0.切换答题环境
kubectl config use-context k8s
# 1.创建clusterrole [root@master2 k8s]# kubectl create clusterrole deployment-clusterrole --verb=create --resource=Deployment,StatefulSet,DaemonSet clusterrole.rbac.authorization.k8s.io/deployment-clusterrole created # 2.创建ServiceAccount [root@master2 k8s]# kubectl create serviceaccount cicd-token -n app-team1 serviceaccount/cicd-token created # 3.绑定ClusterRole到ServiceAccount中 # rolebinding 后面的名字 cicd-token-binding 随便起的,因为题目中没有要求,如果题目中有要求,就不能随便起了 [root@master2 k8s]# kubectl create rolebinding cicd-token-binding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token -n app-team1 rolebinding.rbac.authorization.k8s.io/cicd-token-binding created # 4.检查命令执行是否有问题 [root@master2 k8s]# kubectl describe rolebinding cicd-token-binding -n app-team1 Name: cicd-token-binding Labels: <none> Annotations: <none> Role: Kind: ClusterRole Name: deployment-clusterrole Subjects: Kind Name Namespace ---- ---- --------- ServiceAccount cicd-token app-team1