当前位置: 首页 > news >正文

创建namespace级别权限

一、账户创建

1.创建一个serviceaccount
2.创建一个role
3.将serviceaccount绑定至role

# serviceaccount
apiVersion: v1
kind: ServiceAccount
metadata:name: hadoop-adminnamespace: hadoop
---# role
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: adminnamespace: hadoop
rules:- apiGroups: ["*"]resources: ["*"]verbs: ["*"]- apiGroups: ["*"]resources: ["*"]verbs: ["*"]---
# rolebinding 
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: hadoop-admin-rolebindingnamespace: hadoop
subjects:- kind: ServiceAccountname: hadoop-admin # serviceaccount的名称namespace: hadoop
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: admin  #role的名称

二、检查创建情况并获取token

~]# kubectl get sa -n hadoop
~]# kubectl get role -n hadoop
~]# kubectl get rolebinding -n hadoop
~]# kubectl get secret -n hadoop # 获取secret里面的token字段,并且base64 -d解码

三、注册配置

在相应节点上执行,即某个单独授权kubectl执行权限的机器

# 指定cluster,名称可自定义
kubectl config --kubeconfig=hadoop-config set-cluster hadoop --server=https://apiserver.cluster.local:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true# 生成凭据
kubectl config --kubeconfig=hadoop-config set-credentials hadoop-admin --user=hadoop-admin --token=<刚刚生成的token># 配置上下文
kubectl config --kubeconfig=hadoop-config set-context hadoop-admin --cluster=hadoop --user=hadoop-admin --namespace=hadoop# 使用刚刚配置的上下文
kubectl config --kubeconfig=hadoop-config use-context hadoop-admin

四、环境变量配置


(1)以上步骤执行完后,会在当前目录生成一个文件(就是上面--kubeconfig指定的名称)(2)修改/etc/profile,把这个文件路径配置到环境变量export KUBECONFIG=/root/.kube/blockchain(`路径根据实际情况修改`)(3)source /etc/profile

五、授权serviceaccount至多个namespace

说明: 此步骤需要基于步骤一至步骤四
原理: 将sa绑定至多个namespace的role(因此需要在每个namespace创建相同role,需要在每个namespace创建相同rolebinding)
示例:授权blockchain-admin这个sa到额外的spark命名空间

1.创建额外的role

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: adminnamespace: spark
rules:- apiGroups: ["*"]resources: ["*"]verbs: ["*"]- apiGroups: ["*"]resources: ["*"]verbs: ["*"]

2.创建额外的rolebinding

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: hadoop-admin-rolebindingnamespace: spark
subjects:- kind: ServiceAccountname: hadoop-admin # sa的名称namespace: hadoop # sa所在的namespace
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: admin  #role的名称

3.执行以上两步之后,直接用步骤一中的token即可获得spark和blockchain命名空间的管理员权限。如果想对权限细分,可以修改各个namespace中的role

相关文章:

  • C++报错:没有与参数列表匹配的构造函数 (能确定类型是正确的)
  • Docker Compose快速入门
  • MYSQL 二、SQL语句总结 2 (创建和管理表 以及 数据增删改)
  • Flink 生产问题(数据倾斜)
  • Java类和对象(五)—— 抽象类、接口、Object类和内部类
  • JAVA开发 基于最长公共子序列来计算两个字符串之间的重复率
  • 删除链表的倒数第N个节点-力扣
  • GitLab的原理及应用详解(三)
  • 深入解析kube-scheduler的算法自定义插件
  • 软件系统安全设计规范(word原件)
  • 使用Golang开发一个HTTP客户端请求命令行工具
  • Spring 中常用的手动装载 bean 方法
  • 代码随想录训练营Day 38|力扣435. 无重叠区间、763.划分字母区间、56. 合并区间
  • docker实战之搭建MYSQL8.0主从同步
  • C++11function包装器的使用
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【Linux系统编程】快速查找errno错误码信息
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JAVA多线程机制解析-volatilesynchronized
  • k个最大的数及变种小结
  • Laravel 菜鸟晋级之路
  • npx命令介绍
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue学习第二天
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 前端之React实战:创建跨平台的项目架构
  • 如何选择开源的机器学习框架?
  • 三分钟教你同步 Visual Studio Code 设置
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 源码安装memcached和php memcache扩展
  • 在weex里面使用chart图表
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (ZT)出版业改革:该死的死,该生的生
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)Game
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)ABI是什么
  • (转)详解PHP处理密码的几种方式
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *2 echo、printf、mkdir命令的应用
  • .cn根服务器被攻击之后
  • .NET 设计一套高性能的弱事件机制
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .net实现客户区延伸至至非客户区
  • .Net中ListT 泛型转成DataTable、DataSet
  • /etc/fstab和/etc/mtab的区别
  • @EnableAsync和@Async开始异步任务支持
  • @Transactional事务注解内含乾坤?
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具