kuberneters dashboard认证及分级授权
1、部署dashboard
2、将service改为NodePort
3、认证
- dashboard是运行在kube-system下的一个pod中,用户通过浏览器登陆时所使用的证书里面提供的账号必须是一个serviceaccount
- token
- 创建serviceaccount,根据其管理目标,绑使用rolebinding或者clusterrolebinding绑定至合理的role或者clusterrole;可以使用自建的role/rolebinding/clusterrole/clusterrolebinding
- 绑定完成之后会自动生成一个认证信息,获取到此serviceaccount的secret,查看secret的详细信息,其中就有生成的token
- kueconfig:通过json文件输出获取token、base64解码后并封装到kubeconfig文件中
- 创建serviceaccount,根据其管理目标,绑使用rolebinding或者clusterrolebinding绑定至合理的role或者clusterrole;可以使用自建的role/rolebinding/clusterrole/clusterrolebinding
- kubectl get secret -n NAMESPACE
- KUBE_TOKEN=$(kubectl get secret SERVICE_ACCOUNT_SECRET_NAME -n NAMESPACE -o jsonpath={.data.token} | base64 -d)
- 生成kubeconfig文件
- kubectl config set-cluster
- kubectl config set-credentials NAME --token=KUBE_TOKEN
- kubectl config set-context
- kubectl config set use-context
4、kubernetes集群管理方式
- 命令式 create, run , expose, delete , edit ...
- 命令式配置文件 create -f /PATH/TO/RESOURCE_FILE, delete -f , replace -f ...
- 声明式配置文件 apply -f /PATH/TO/RESOURCE_FILE, patch,
自签证书给dashboard使用(可选,如果要使用自己创建的证书认证就需要运行):
# cd /etc/kubernetes/pki/ # (umask 077;openssl genrsa -out dashboard.key 2048) # umask 077为了安全 # 创建key # openssl req -new -key dashboard.key -out dashboard.csr -subj "/CN=dashboard" # CN的值就是用户账号的名字,如果需要使用域名访问,这里需要和域名保持一致 # 证书签证请求 # openssl x509 -days 1000 -req -in dashboard.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out dashboard.crt # -CA 用哪个证书签 -CAkey用哪个key -CAcreateserial用CA自己的认证符号信息 # kubectl create secret generic dashboard.cert -n kube-system --from-file=dashboard.crt=./dashboard.crt --from-file=dashboard.key=./dashboard.key # 把生成的dashboard证书放入secret中供dashboard使用
安装Dashboard:
# dashboard gtihub 源: https://github.com/kubernetes/dashboard# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml 查看svc: # kubectl get svc-n kube-system打补丁暴露端口使得可以外部访问: # kubectlpatch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' -n kube-system然后访问dashboard url: https://nodeip:port # nodeip为任一节点的ip地址,port为dashboard pod暴露出来的port端口
使用token认证登陆:
创建 kube-system namespace下的serviceaccount # kubectl create serviceaccount dashboard-admin -n kube-system将serviceaccount使用clusterrolebinding绑定到clusterrole角色 # kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin #将会生成一个dashboard-admin-token-xxx # kubectl describe secret dashboard-admin-token-tfndl -n kube-system #可以看到token信息;可以使用该token来登陆dashboard,copy之后在dashboard登陆界面选择token,然后粘贴进去即可
使用token登陆管理指定namespace下的资源:
创建 develop namespace下的serviceaccount # kubectl create serviceaccount dashboard-develop -n develop 将serviceaccount使用rolebinding绑定到clusterrole角色 # kubectl create rolebinding dashboard-develop-admin --clusterrole=admin --serviceaccount=develop:dashboard-develop -n develop #将会生成一个dashboard-develop-token-xxx # kubectl describe secret dashboard-develop-token-69dx9 -n develop #可以看到token信息;可以使用该token来登陆dashboard,copy之后在dashboard登陆界面选择token,然后粘贴进去即可
使用kubeconf文件认证登陆:
生成kubeconfig文件: 把ServiceAccount的token封装为kubeconfig文件 # cd/etc/kubernetes/pki/# kubectl config set-cluster kubernets --certificate-authority=./ca.crt --server="https://10.100.0.128:6443" --embed-certs=true --kubeconfig=/root/dashboard.conf # --server 集群信息 # develop_tocken=$(kubectl get secret dashboard-develop-token-69dx9 -n develop -o jsonpath={.data.token} | base64 -d) # 获取token并解密 # kubectl config set-credentials dashboard-deveop-admin --token=$develop_tocken --kubeconfig=/root/dashboard.conf #将token写入conf文件 # kubectl config set-context develop-admin@kubernetes --cluster=kuberbetes --user=develop-admin --kubeconfig=/root/dashboard.conf #创建用户 切换use-context # kubectl config use-context develop-admin@kubernetes --kubeconfig=/root/dashboard.conf 最后就可以在浏览器登陆界面选择生成好的kubeconfig文件来登陆
转载于:https://www.cnblogs.com/alamisu/p/11279074.html
kuberneters dashboard认证及分级授权相关推荐
- k8s系列--- dashboard认证及分级授权
http://blog.itpub.net/28916011/viewspace-2215214/ 因版本不一样,略有改动 Dashboard官方地址: https://github.com/kube ...
- Flex与.NET互操作(九):FluorineFx.NET的认证(Authentication )与授权(Authorization)
FluorineFx.NET的认证(Authentication )与授权(Authorization)和ASP.NET中的大同小异,核实用户的身份既为认证,授权则是确定一个用户是否有某种执行权限,应 ...
- Shiro学习笔记_02:shiro的认证+shiro的授权
Shiro 学习笔记 本文基于B站UP主[编程不良人]视频教程[2020最新版Shiro教程,整合SpringBoot项目实战教程]进行整理记录,仅用于个人学习交流使用. 视频链接:https://w ...
- Shiro用户认证和用户授权流程
有时候觉得'如约而至'是个多么美好的词,等的很辛苦,却不辜负.--<匿名> 1.引言 传统权限管理使用基于url拦截的权限管理方式,实现起来比较简单,不依赖框架,使用web提供filter ...
- 认证(Authentication),授权(Authorization) 以及Cookie、Session
1.认证和授权 1.1 首先二者的读法不同 认证: Authentication 授权: Authorization 1.2 认证和鉴权是什么? 从简单的角度来说: 认证: 理解为你是谁 授权: 理 ...
- HDFS权限管理、用户身份认证和数据访问授权、UGO权限管理、umask权限掩码、UGO权限相关命令、Web页面修改UGO权限
HDFS权限管理 1.1 总览概述 作为分布式文件系统,HDFS也集成了一套兼容POSIX的权限管理系统.客户端在进行每次文件操时,系统会从用户身份认证和数据访问授权两个环节进行验证: 客户端的操作请 ...
- 转:权限管理——用户认证和用户授权
转自: https://blog.csdn.net/xdd19910505/article/details/51926540 因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框 ...
- java url 授权,Spring MVC框架 - 基本认证之URL 授权认证
[导读]为控制器添加注解是非常简单的,但这往往并不是最可行的方案.有时候,我们会想要完全控制授权功能. 为控制器添加注解是非常简单的,但这往往并不是最可行的方案.有时候,我们会想要完全控制授权功能. ...
- 网络安全——浅谈——AAA认证技术——登录授权、配置命令
目录 一.AAA认证简介: AAA认证流程: 实验及配置命令: 第一步:开启AAA认证 第二步:配置线下保护(console接口不参与AAA认证) 第三步:对R1设备telnet我R2的时候提供AAA ...
最新文章
- 【笔记】Hexo+Github博客网站搭建,初试环境搭建及Matery主题配置感受
- iis占用服务器内存,W3wp.exe 进程占用内存高消耗CPU近100%导致网站反应速度缓慢的解决方案...
- 什么是SPDK,以及什么场景需要它
- Java程序员谈一谈-----java程序员成长之路
- PYTHON-进阶-编码处理小结
- 布同:web版比赛实时算分系统的设计
- android显示多个网络图片不显示,Android显示网络图片实例
- 【kafka】kafka 如何开启 kafka.consumer的监控指标项
- 【无机纳米材料科研制图——OriginLab 0202】Origin制图优化与格式复制
- ubuntu 18.04安装 远程控制软件 TeamViewer 亲测有效简单
- 视频如何转换html链接地址,视频肿么生成html代码放到自己的网页去求解答法案...
- Web前端工程师知识脉络图
- Android 常用图片框架对比
- VMware 虚拟机安装Linux(Ubuntu)系统教程
- @Aspect注解使用场景
- 据说这是北大教师孔庆东的韩国游记
- 还不快到碗里来?软件测试接口测试面试题(大全)
- XCP实战系列介绍04-CANape工程配置超详细介绍
- cnpm : 无法加载文件 D:\mydriver\node-install\nodejs\node_global\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/g
- 安装Souce Insight 4.0 、显示文件浏览、折叠代码