需求:创建一个ns:test1 给RD一个这个ns下所有资源的的list,get,create,delete权限
第一步:
首先创建ns
kubectl create ns test1 #创建namespace test1
第二步:
在集群中创建一个用户,用户名:RD-xxx
#yaml 文件的方式
apiVersion: v1 kind: ServiceAccount metadata: name: RD-xxx namespace: test1
# 命令行方式:
kubectl create ServiceAccount RD-xxx -n test1
#检查是否创建成功:
kubectl get ServiceAccount RD-xxx -n test1
第三步:
在test1命名空间下创建role
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test1 rules: - apiGroups: - apps - '' resources: - deployments - replicasets - statefulsets - daemonsets - services - pods - pods/log #pod的日志权限 - pods/exec #pod的执行权限 - namespaces verbs: - list - get - create
#检查是否创建成功
kubectl get role test-role -n test1
第四步:
在test1命令空间创建人员关系 使用rolebind 绑定
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role namespace: test1 roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: test-role subjects: - kind: ServiceAccount name: RD-xxx namespace: test1
---
#查看是否创建成功
kubectl get rolebinding test-role -n test1
第五步:生成 kubectl config 文件
查看test1 ns中的RD-xxx 用户的token
一条命令: echo $(kubectl -n test1 get secret $(kubectl -n test1 get secret | grep RD-xxx | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
# 添加新的用户配置到 kubeconf 中,使用 basic auth 进行身份认证 kubectl config set-credentials RD-xxx --token=结果token # 在 kubeconfig 中配置代理服务器的 URL,以用于该客户端的请求 kubectl config set-cluster mycluster --insecure-skip-tls-verify=true --server=https://xxx.xxx.xxx.xxx:6443 # 在指定上下文中持久性地保存名字空间,供所有后续 kubectl 命令使用 kubectl config set-context mycontext --cluster=mycluster --user=RD-xxx #设置默认的上下文为 my-cluster-name kubectl config use-context mycontext
查看test1命名空间下pods
标签:test1,kubectl,K8S,get,xxx,RD,集群,role,权限 From: https://www.cnblogs.com/slx-yyds/p/17115118.html