K8S集群相关操作-权限
需求:创建一个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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了