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

打补丁暴露端口使得可以外部访问:
# kubectl patch 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 [email protected] --cluster=kuberbetes --user=develop-admin --kubeconfig=/root/dashboard.conf #创建用户
切换use-context
# kubectl config use-context [email protected] --kubeconfig=/root/dashboard.conf
最后就可以在浏览器登陆界面选择生成好的kubeconfig文件来登陆

原文地址:https://www.cnblogs.com/alamisu/p/11279074.html

时间: 2024-10-29 11:27:11

kuberneters dashboard认证及分级授权的相关文章

kubernetes dashboard 认证及分级授权

概述 前面介绍了kubernetes的两个东西,认证和授权 在kubernetes中我们对API server的一次访问大概会包含哪些信息?简单来讲它是restfule风格接口,也就是某个用户对某个操作执行了某个操作. subject --> action --> object 因此我们授权定义也是围绕这种方式展开的,同时我们也不能允许所有用户随意就能够访问我们k8s 所以我们讲到了认证,讲到了它的两种认证方式,第一种叫token,一种叫证书认证,即tls,当然还有第三种方式认证,账号和密码(

SVN分级授权部署手册 --Windows用户认证

http://wenku.baidu.com/view/a0a16ea34028915f804dc2f8.html 第一章 概述 当VisualSVN 2.7采用Windows用户认证或Windows域认证时,可以使用SVN分级授权工具对VisualSVN的授权功能进行扩展,实现SVN库的创建.分库的分级授权.SVN用户密码修改等.本手册主要描述Windows用户认证的配置方法,关于采用Windows域认证的配置方法请参考<SVN分级授权工具部署手册--Windows域认证>. 第二章 安装部

JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权

shiro介绍 什么是shiro shiro是Apache的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架.它可以实现如下的功能: 1.验证用户 2.对用户执行访问控制,如:判断用户是否具有角色admin,判断用户是否拥有访问的资源权限. 3.在任何环境下使用SessionAPI.例如C/S程序 4.可以使用多个用户数据源.例如一个是Oracle数据库,另外一个是MySQL数据库. 5.单点登录(SSO)功能

[转].net中的认证(authentication)与授权(authorization)

本文转自:http://www.cnblogs.com/yjmyzz/archive/2010/08/29/1812038.html 注:这篇文章主要给新手看的,老手们可能会觉得没啥营养,就请绕过吧. "认证"与"授权"是几乎所有系统中都会涉及的概念,通俗点讲: 认证(authentication) 就是 "判断用户有没有登录?",好比windows系统,没登录就无法使用(不管你是用Administrator或Guest用户,总之要先正确登录后,

Kubernetes之(十六)Dashboard认证访问

目录 Kubernetes之(十六)Dashboard认证访问 Dashboard部署 token认证 kube-config认证 总结 Kubernetes之(十六)Dashboard认证访问 Dashboard:https://github.com/kubernetes/dashboard Dashboard部署 下载yaml文件 [[email protected] manifests]# wget https://raw.githubusercontent.com/kubernetes/

微信公众号之订阅号(已认证)实现oauth2授权登录详细步骤介绍

一: 简介 通过 微信公众平台---->权限接口 可以得知 微信的订阅号是没有授权登录接口的,只有服务号才有该权限.这点微信公众平台在多处反复强调 最终的事实是:微信订阅号是可以实现授权登录的! 二:具体实现步骤: 1. 首先在 微信公众平台(https://mp.weixin.qq.com/) [开发]----> [基本配置]----->[服务器配置]完成基本的配置信息 URL: 这里的地址我写的是我们HTML5项目的某个Controller或Servlet的地址,例如 http://

.net中的认证(authentication)与授权(authorization)

本文转自:http://www.cnblogs.com/yjmyzz/archive/2010/08/29/1812038.html 认证(authentication) 就是 "判断用户有没有登录?",好比windows系统,没登录就无法使用(不管你是用Administrator或Guest用户,总之要先正确登录后,才能进入系统). 授权(authorization) 就是"用户登录后的身份/角色识别",好比"管理员用户"登录windows后,

Shiro 缓存认证信息和授权信息

spring-shiro.xml文件配置 <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="customAuthorizingRealm"/> <property name="cacheManager"

k8s之dashboard认证、资源需求、资源限制及HeapSter

1.部署dashboard kubernetes-dashboard运行时需要有sa账号提供权限 Dashboard官方地址:https://github.com/kubernetes/dashboard # 在node1上下载镜像 docker pull googlecontainer/kubernetes-dashboard-amd64:v1.10.1 docker tag googlecontainer/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.