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

Dashboard安装配置

获取dashboard yaml文件

curl -O https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

更改官网镜像地址

sed -i 's/k8s\.gcr\.io/jicki/g' kubernetes-dashboard.yaml

导入文件

# kubectl apply -f kubernetes-dashboard.yaml 
secret "kubernetes-dashboard-certs" created
serviceaccount "kubernetes-dashboard" created
role "kubernetes-dashboard-minimal" created
rolebinding "kubernetes-dashboard-minimal" created
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created

 

访问方式

Kubernetes 暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、Ingress

1、NodePort

为了方便验证,这里采用NodePort是将节点直接暴露在外网的一种方式,只建议在开发环境,单节点的安装方式中使用。

启用NodePort很简单,只需执行kubectl edit命令进行编辑,将type: ClusterIP修改为type: NodePort(将service监听端口映射到node节点

保存后使用kubectl get service命令来查看自动生成的端口

# kubectl -n kube-system edit service kubernetes-dashboard
  type: ClusterIP --->type:NodePort
#kubectl -n kube-system get svc
NAME                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE     SELECTOR
service/kubernetes-dashboard   NodePort    10.254.37.88   <none>        443:30469/TCP   2d18h   k8s-app=kubernetes-dashboard

此时可以通过局域网进行正常访问

https://172.17.213.60:30469 

2、API Server

做好下面的浏览器访问kube-apiserver安全端口后可以直接通过 API Server的方式进行访问:

https://172.17.213.60:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

 

Dashboard登陆认证

首先创建一个dashboard rbac超级用户

# vim dashboard-admin-rbac.yaml

---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard-admin
  namespace: kube-system

# kubectl apply -f dashboard-admin-rbac.yaml

查看超级用户的token名称

# kubectl -n kube-system get secret | grep kubernetes-dashboard-admin

查看token部分

# kubectl describe -n kube-system secret/kubernetes-dashboard-admin-token-*****

登陆web ui选择“令牌登陆”,输入上面的token

 

浏览器访问kube-apiserver安全端口

一般情况下访问kube-apiserver的安全端口6443时,会提示证书不被信任。这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信任。对于 Mac,操作如下: 启动台-->搜索输入“钥匙串访问”

对于win使用以下命令导入ca.perm

keytool -import -v -trustcacerts -alias appmanagement -file "PATH...\\ca.pem" -storepass password -keystore cacerts

再次访问 https://172.17.213.60:6443/,已信任,但提示 401,未授权的访问:Unauthorized

我们需要给浏览器生成一个 client 证书,访问 apiserver 的 6443 https 端口时使用。

这里使用部署 kubectl 命令行工具时创建的 admin 证书、私钥和上面的 ca 证书,创建一个浏览器可以使用的 PKCS#12/PFX 格式的证书:

openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem

将创建的 admin.pfx 导入到系统的证书中

重启浏览器,再次访问时提示选择一个浏览器证书,选中上面导入的 admin.pfx 后实现访问正常。

 

客户端选择证书的原理

1、证书选择是在客户端和服务端 SSL/TLS 握手协商阶段商定的;
2、服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接受的 CA 列表;
3、客户端查找它的证书列表(一般是操作系统的证书,对于 Mac 为 keychain),看有没有被 CA 签名的证书,如果有,则将它们提供给用户选择(证书的私钥);
4、用户选择一个证书私钥,然后客户端将使用它和服务端通信;

 

相关文章:

  • vue中的slot
  • String和StringBuilder、StringBuffer的区别?
  • 关于Numba开源库(Python语法代码加速处理,看过一个例子,速度可提高6倍)
  • Aibee完成A轮6000万美元融资 宣布前阿里达摩院朱胜火加盟
  • re:Invent 大会第一天,看看AWS有哪些最新进展?\n
  • 自然语言处理怎么最快入门?
  • RabbitMQ(二):理解消息通信RabbitMQ
  • 每天10道Java面试题,跟我走,offer有!
  • OSChina 周四乱弹 —— 你从小继承了程序员基因
  • Java中数组、集合、链表、队列的数据结构和优缺点和他们之间的区别
  • Django的模板系统
  • 深入理解Emoji(二) —— 字节序和BOM
  • 防止系统锁屏-python、C++实现
  • 意见汇总
  • 如何在vue项目中优雅的使用SVG
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Consul Config 使用Git做版本控制的实现
  • Laravel 菜鸟晋级之路
  • Mysql优化
  • node-glob通配符
  • node和express搭建代理服务器(源码)
  • PHP CLI应用的调试原理
  • python学习笔记 - ThreadLocal
  • SSH 免密登录
  • vue数据传递--我有特殊的实现技巧
  • 番外篇1:在Windows环境下安装JDK
  • 浮动相关
  • 关于Java中分层中遇到的一些问题
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于webpack 的 vue 多页架构
  • 深入浏览器事件循环的本质
  • 我从编程教室毕业
  • HanLP分词命名实体提取详解
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (day6) 319. 灯泡开关
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (层次遍历)104. 二叉树的最大深度
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (转)我也是一只IT小小鸟
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net mvc总结
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET开源项目介绍及资源推荐:数据持久层
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [C# 开发技巧]实现属于自己的截图工具
  • [C]整形提升(转载)