题目描述
设置配置环境 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 配置文件
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

kubectl create serviceaccount cicd-token -n app-team1

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

参考
使用 RBAC 鉴权