2024 CKA模拟系统制作 | Step-By-Step | 4、题目搭建-权限控制RBAC

发布于:2025-05-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一、题目

二、题目考点分析

1. RBAC权限模型

2. 资源权限定义

3. ServiceAccount与绑定

三、考点详细讲解

1. RBAC权限模型

2. ClusterRole定义

四、实验环境搭建步骤

1. 创建Namespace

五、总结


免费获取题库配套 CKA_v1.31_模拟系统   咨询2025年最新题库和模拟系统请直接私信

一、题目

您必须在以下Cluster/Node上完成此考题:

Cluster                                       Master node                                     Worker node

  ak8s                                            master                                                node01

.

设置配置环境:

[candidate@node01]$ kubectl config use-context ak8s

.

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

二、题目考点分析

1. RBAC权限模型

  • 核心考点:理解Kubernetes的基于角色的访问控制(RBAC)模型,包括:

    • ClusterRole:定义集群范围的权限规则(如操作Deployment、StatefulSet等资源)。

    • RoleBinding/ClusterRoleBinding:将权限绑定到用户、组或ServiceAccount。

    • 作用域限制:权限是否限定在特定Namespace。

  • 关键区别

类型 作用范围 适用场景
Role + RoleBinding 单个Namespace 限制权限到某个命名空间
ClusterRole + ClusterRoleBinding 全集群 跨命名空间的全局权限
ClusterRole + RoleBinding 单个Namespace 复用ClusterRole到特定命名空间
  • 本题要求
    必须使用 ClusterRole + RoleBinding 组合,实现权限仅作用于 app-team1 Namespace。

2. 资源权限定义

  • 核心考点:在ClusterRole中正确定义允许操作的资源类型及操作动词。

    • 资源类型deploymentsstatefulsetsdaemonsets(注意复数形式)。

    • API组:Deployment属于 apps/v1 API组,需显式声明。

    • 操作动词:仅允许 create 操作。

  • 易错点

    • 资源名称拼写错误(如误写为单数 deployment)。

    • 忘记指定API组(apiGroups: ["apps"])。

3. ServiceAccount与绑定

  • 核心考点

    • 在指定Namespace(app-team1)中创建ServiceAccount。

    • 通过RoleBinding将ClusterRole与ServiceAccount绑定,并限制在同一个Namespace。

  • 关键点

    • RoleBinding的 subjects 字段需指定ServiceAccount的Namespace。

    • 使用 roleRef 引用ClusterRole。

三、考点详细讲解

1. RBAC权限模型

  • RBAC核心组件

    • Subject(主体):用户、组或ServiceAccount。

    • Role/ClusterRole(角色):定义权限规则(如“允许创建Deployment”)。

    • RoleBinding/ClusterRoleBinding(绑定):将角色与主体关联。

  • 权限作用域

    • Role + RoleBinding:权限仅限单个Namespace。

    • ClusterRole + RoleBinding:ClusterRole的权限被限制到单个Namespace。

    • ClusterRole + ClusterRoleBinding:权限全局生效。

  • 本题场景

    • 需要创建 ClusterRole(因为可能后续复用该权限到其他Namespace)。

    • 通过 RoleBinding 将其限制到 app-team1 Namespace。

2. ClusterRole定义

  • YAML示例

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: deployment-clusterrole
rules:
- apiGroups: ["apps"]       # Deployment等资源属于apps组
  resources: ["deployments", "statefulsets", "daemonsets"]
  verbs: ["create"]         # 仅允许创建操作

关键参数解析

字段 说明
apiGroups ["apps"] 资源所属的API组(Deployment在apps/v1)
resources 复数形式的资源类型名称 必须全小写,如deployments
verbs ["create"] 允许的操作动词

四、实验环境搭建步骤

1. 创建Namespace

kubectl create namespace app-team1

五、总结

本地我们只需创建题目要求的namespace即可,其他创建皆是题目考察内容。
通过本题,重点掌握:

  1. RBAC权限模型:区分Role/ClusterRole与Binding的作用范围。

  2. 资源与权限定义:正确指定API组、资源类型和操作动词。

  3. 最小权限原则:仅授予必要的权限(如仅允许create操作)。

实验环境搭建后,可通过验证命令确保权限配置符合预期,避免因权限泄漏导致的安全风险。


网站公告

今日签到

点亮在社区的每一天
去签到