2. cka题目-基于角色的访问控制-RBAC

337 阅读1分钟

题目描述

设置配置环境 kubectl config use-context k8s Context 
为部署管道创建一个新的 ClusterRole 并将其绑定到范围为特定 namespace 的特定 ServiceAccount
  • 创建一个名字为 deployment-clusterrole 且仅允许创建以下资源类型的新ClusterRole
    • Deployment
    • StatefulSet
    • DaemonSet
  • 在现有的 namespace app-team1 中创建有个名为 cicd-token 的新 ServiceAccount。
  • 限 于 namespace app-team1 , 将 新 的 ClusterRole deployment-clusterrole 绑 定 到 新 的 ServiceAccount cicd-token。

根据题目完成预置条件

kubectl create namespace app-team1

解析

  • 创建 ClusterRole
# 创建 ClusterRole 配置文件
cat > /cka/clusterrole.yaml <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: deployment-clusterrole
rules:
- apiGroups: [""]
  resources: ["deployments", "statefulsets", "daemonsets"]
  verbs: ["create"]
EOF

# 创建
kubectl apply -f /cka/clusterrole.yaml

image.png

  • 创建 ServiceAccount
kubectl create serviceaccount cicd-token -n app-team1

image.png

  • 将 新 的 ClusterRole deployment-clusterrole 绑 定 到 新 的 ServiceAccount cicd-token
kubectl create rolebinding bind-clusterrole \
  --clusterrole=deployment-clusterrole \
  --serviceaccount=app-team1:cicd-token \
  --namespace=app-team1

image.png

参考

使用 RBAC 鉴权