江小南

V1

2022/10/23阅读:41主题:默认主题

【CKA、CKS篇】CKA真题解析—RBAC权限控制

前言

这个专栏我们进行CKA和CKS的真题讲解,题目出自CKA和CKS题库。掌握了这些题目,对于 CKA和CKS考试将会变得非常简单。根据以往的经验,甚至有原题出现,最多就是参数等的变 化。由于资料是花钱买的,所以这个专栏将收取一定费用,有兴趣的小伙伴可以订阅,我将持续更新,教给大家做题的方法和技巧,理清思路,并且将涉及到的知识点做进一步的补充说明,希望各位小伙伴能学到知识,当然还盼望大家升职加薪。

在这里插入图片描述
在这里插入图片描述

真题解析

题目: 创建一个名为 deployment-clusterrole 且仅允许创建以下资源类型的新 ClusterRole: Deployment, StatefulSet, DaemonSet。 在现有的 namespaceapp-team1 中创建一个名为 cicd-token 的新 ServiceAccount。 限于 namespaceapp-team1 中,将新的 ClusterRoledeployment-clusterrole 绑定到新的 ServiceAccountcicd-token

考察点: RBAC授权模型的理解。

解析: 1.ClusterRole表示集群角色,角色就会有对应的权限。这里我们需要创建,名称为 deployment-clusterrole,权限为创建(create)。资源类型为Deployment,StatefulSet, DaemonSet.

2.ServiceAccount(服务账号)是集群内的一个主体(subiect),这里我们需要创建,名称为 cicd- token,所在命名空间为 app-teaml。

3角色绑定是将角色和主体进行绑定的过程,这里需要创建,名称没有说明,可以自定义(cicd-token-relebinding),命名空间为 app-team1。 综合解析,需要做的就是创建角色和主体,然后将创建好的角色和主体进行绑定。

帮助命令: 根据解析,我们需要通过相应的命令来完成题目,在实际的考试中,我们可以查阅帮助文档。 1.创建ClusterRole

candidate@node01:~$ kubectl create clusterrole -h
Create a cluster role.
...
Usage:
  kubectl create clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename]
[--dry-run=server|client|none] [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).
candidate@node01:~$

2.创建serviceaccount

candidate@node01:~$ kubectl create serviceaccount -h
Create a service account with the specified name.
...
Usage:
  kubectl create serviceaccount NAME [--dry-run=server|client|none] [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).
candidate@node01:~$

3.创建绑定关系

candidate@node01:~$ kubectl create rolebinding -h
Create a role binding for a particular role or cluster role.
...
Usage:
  kubectl create rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname]
[--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none] [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).
candidate@node01:~$

实际操作: 通过解析和帮助文档,我们已经知道了题目需要做什么,并且了解到了相关命令的写法,我们需要根据帮助文档将命令补充完整即可。

# 创建clusterrole
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets

#
 创建serviceaccount
kubectl -n app-team1 create serviceaccount cicd-token

#
 创建rolebinding
kubectl -n app-team1 create rolebinding cicd-token-rolebinding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token

检查验证

candidate@node01:~$ kubectl -n app-team1 describe rolebinding cicd-token-rolebinding
Name:         cicd-token-rolebinding
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  deployment-clusterrole
Subjects:
  Kind            Name        Namespace
  ----            ----        ---------
  ServiceAccount  cicd-token  app-team1
candidate@node01:~$

至此本道题目完成。

分类:

后端

标签:

云计算

作者介绍

江小南
V1