考题概述:

创建名称 deployment-clusterrole 的 ClusterRole,该⻆⾊具备创建 Deployment、Statefulset、
Daemonset 的权限,在命名空间 app-team1 中创建名称为 cicd-token 的 ServiceAccount,绑定
ClusterRole 到 ServiceAccount,且限定命名空间为 app-team1。

考题解析:

需要熟悉创建 serviceaccount、clusterrole 和 rolebinding 的⽅法,需要限定在 ns 级别,因此最好使
⽤ rolebinding

参考⽅法

# 考试时执行,切换集群。模拟环境中练习不需要执行。真实考试环境会提示你切换
root@cka-master1:~# kubectl config use-context k8s
 
# 题目中说明已存在名称空间 “在现有的 namespace app-team1 ” 则不需要创建该名称空间。因为我们在自己的模拟环境中,则手动创建该名称空间
root@cka-master1:~# kubectl create ns app-team1
 
# 接下来正式做题
root@cka-master1:~# kubectl create clusterrole deployment-clusterrole --verb=create --resource=Deployment,StatefulSet,DaemonSet
 
root@cka-master1:~# kubectl create serviceaccount cicd-token -n app-team1 
 
# 题目中写了 “限于 namespace app team1 中”,则创建 rolebinding,没有写的话,则创建clusterrolebinding;rolebinding 后面的名字 rb-cicd-token 随便起的,因为题目中没有要求,如果题目中有要求,就不能随便起了。
root@cka-master1:~# kubectl create rolebinding rb-cicd-token --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token --namespace=app-team1
 
# 检查验证
root@cka-master1:~# kubectl describe rolebindings 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

什么是RoleBinding

RoleBinding通过已经定义的Role权限授予到用户、用户组,从而让用户获得在NameSpace对应的操作资源权限。
RoleBinding基本操作
通过YAML资源定义清单创建RoleBinding
kubectl apply -f pod-rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: RoleBinding metadata: name: pod-rolebinding namespace: default subjects: - kind: User name: carry apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: pod-role apiGroup: rbac.authorization.k8s.io

什么是ClusterRoleBinding

ClusterRoleBinding通过已经定义的ClusterRole权限授予到用户或用户组,从而让用户获得集群内对应的操作资源权限。
ClusterRoleBinding基本操作
通过YAML资源定义清单创建ClusterRoleBinding
kubectl apply -f pod-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: pod-clusterrolebinding subjects: - kind: Group name: super-admin apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: pod-clusterrole apiGroup: rbac.authorization.k8s.io

相关参数

RoleBinding、ClusterRoleBinding绑定的Subject对象可以是User、Group、Service Account

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐