安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题)

官方文档:https://github.com/kubernetes/dashboard

参考文章:https://kuboard.cn/install/install-k8s-dashboard.html#

前言

Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。使用 Kubernetes Dashboard,你可以:

  • 向 Kubernetes 集群部署容器化应用

  • 诊断容器化应用的问题

  • 管理集群的资源

  • 查看集群上所运行的应用程序

  • 创建、修改Kubernetes 上的资源(例如 Deployment、Job、DaemonSet等)

  • 展示集群上发生的错误

例如:您可以伸缩一个 Deployment、执行滚动更新、重启一个 Pod 或部署一个新的应用程序

1. 准备安装kubernetes dashboard的yaml文件

wget  https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml


Kubernetes Dashboard 默认部署时,只配置了最低权限的 RBAC

参考文档:https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

2. 创建 serviceaccount

[@kube-test.master.mango.com ~/manifests/dashboard]# cat dashboard-sa.yaml

apiVersion: v1kind: ServiceAccountmetadata:name: dashboard-adminnamespace: kubernetes-dashboard

3. 创建clusterrolebinding为dashboard sa授权集群权限cluster-admin

[@kube-test.master.mango.com ~/manifests/dashboard]# cat dashboard-clusterrolebinding.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: dashboard-adminroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-adminsubjects:- kind: ServiceAccountname: dashboard-adminnamespace: kubernetes-dashboard

4. 启动服务

kubectl apply -f  recommended.yaml dashboard-sa.yaml dashboard-clusterrolebinding.yaml

5. 访问

修改kubernetes-dashboard namespace中的svc kubernetes-dashboard 的spec.type为NodePort,便于我们从集群外使用浏览器访问dashboard

  • 方法1. 修改 recommended.yaml文件

service段配置更改如下:(nodePort: 30001可以省略,缺省则为随机端口,服务启动后使用kubectl get svc -n kubernetes-dashboard查看)

kind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboardspec:type: NodePortports:- port: 443targetPort: 8443nodePort: 30001selector:k8s-app: kubernetes-dashboard
  • 方法2. 热更新打补丁的方式修改svc
kubectl -n kubernetes-dashboard patch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}'

此时通过chrome浏览器访问https://ip:30001

显然,无法正常访问,k8s旧版本可能不存在此问题,使用Firefox浏览器添加例外可能可以跳过证书问题,但这里我们使用重新制作自签证书,重建secret,更新证书,解决此错误

6. 解决证书过期问题

  • 为dashboard制作自签证书
[@kube-test.master.mango.com ~]# (umask 077; openssl genrsa -out dashboard.key 2048)[@kube-test.master.mango.com ~]# openssl req -key dashboard.key -out dashboard.csr -subj "/O=mango/CN=dashboard"[@kube-test.master.mango.com ~]# openssl req -new -key dashboard.key -out dashboard.csr -subj "/O=mango/CN=dashboard"[@kube-test.master.mango.com ~]# openssl x509 -req -in dashboard.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out dashboard.crt -days 3650
  • 修改官方的recommended.yaml文件

删除secret部分:

---apiVersion: v1kind: Secretmetadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboardtype: Opaque---

这里顺便修改一下service资源对象,更改为nodeport类型

---kind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboardspec:type: NodePortports:- port: 443targetPort: 8443nodePort: 30001selector:k8s-app: kubernetes-dashboard---

7. 重新部署dashboard

kubectl apply -f  recommended.yaml dashboard-sa.yaml dashboard-clusterrolebinding.yaml

8. 创建dashboard的secret

kubectl create secret generic kubernetes-dashboard-certs -n kubernetes-dashboard --from-file=dashboard.crt=./dashboard.crt --from-file=dashboard.key=./dashboard.key

9. 查看服务状态

[@kube-test.master.mango.com ~/manifests/dashboard]# kubectl get svc -n kubernetes-dashboardNAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGEdashboard-metrics-scraper   ClusterIP   10.96.73.251   <none>        8000/TCP        58mkubernetes-dashboard        NodePort    10.96.236.10   <none>        443:30001/TCP   58m

10. 浏览器访问

https://ip:30001

11. 获取验证token

[@kube-test.master.mango.com ~/manifests/dashboard]# kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard | grep dashboard-admin | awk '{print $1}')Name:         dashboard-admin-token-n7795Namespace:    kubernetes-dashboardLabels:       <none>Annotations:  kubernetes.io/service-account.name: dashboard-adminkubernetes.io/service-account.uid: 286e2ee6-b03d-4e65-a386-7b0a9d03d47dType:  kubernetes.io/service-account-tokenData====ca.crt:     1025 bytesnamespace:  20 bytestoken:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tbjc3OTUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMjg2ZTJlZTYtYjAzZC00ZTY1LWEzODYtN2IwYTlkMDNkNDdkIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.koV8lmBHo49jj1Nzrp1CjyiAKuU_7vxYmdsxkQPpjAi-WyZ8IJt3Al85l07HNY48m9nK-3w1yDIPYxoXNDTLVO88enk1JMqmvXrsbeyGHOLm3z5SwS8W7mCP22JO_A9dFDupGQ26MIE0quJhQ0MkgzAGVRpRjrgFqY4upi8_2j6VISgcVS6tG-do6TBZrv2fv6VKhn0njJ4Y2oc3ZxU4_nd4_2tsoAQS9LtZrOUbiF8xmNVSyUFZGF7JxpeW1JFpAtbUruQUC0sPGKfJ9vSKeDlIF3QV9frw4v8J7Roi1IoavKfRmzfNbWtiiu3S59GDgd_w5mP9k9H6f1ryz69Zgg

复制token填写至令牌处

有史以来最详细 安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题)相关推荐

  1. [原]部署kubernetes dashboard(二)

    #######################    以下为声明  ##################### 此文档是之前做笔记在两台机上进行的实践,kubernetes处于不断开发阶段 不能保证每 ...

  2. 使用 KubeKey 安装部署 Kubernetes 与 Kube-OVN

    作者简介:林瑞超,锐捷网络开发工程师, KubeSphere 社区 contributor, 关注Kube-OVN, Cilium 等容器网络相关技术 背景 KubeKey 是 KubeSphere ...

  3. Centos7 安装部署Kubernetes(k8s)集群过程

    1.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.9 Docker version 20.10.12 x86_64 2.前言 如下图描述了软件部 ...

  4. nacos详细安装部署与异常排解

    nacos详细安装部署与异常排解 官网 官网链接:https://nacos.io/zh-cn/docs/quick-start.html 异常排查解决 Invalid default value f ...

  5. 部署Kubernetes Dashboard 及监控组件 Heapster

    部署Dashboard 项目地址:https://github.com/kubernetes/dashboard 1.下载官方提供的 Dashboard 组件部署的 yaml 文件 wget http ...

  6. Nginx Linux详细安装部署教程

    Nginx Linux详细安装部署教程 一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入 ...

  7. H3C iMC PLAT 安装部署相关问题及解决方法1

    H3C iMC PLAT 安装部署相关问题及解决方法1 参考文章: (1)H3C iMC PLAT 安装部署相关问题及解决方法1 (2)https://www.cnblogs.com/xiaorong ...

  8. 安装部署 Kubernetes 仪表板(Dashboard)

    简介 Kubernetes 仪表板(Dashboard)是基于网页的 Kubernetes 用户界面. 你可以使用仪表板: 展示了 Kubernetes 集群中的资源状态信息和所有报错信息. 把容器应 ...

  9. nginx linux详细安装部署教程,Nginx Linux详细安装及部署实战

    Nginx Linux详细安装及部署实战 Nginx 常用基础命令 #启动 Nginx /usr/local/webserver/nginx/sbin/nginx #默认配置文件 /usr/local ...

最新文章

  1. 每日一皮:这题作的没毛病...
  2. 计算机二级一年几次湖南省,湖南省计算机二级多少分可以通过
  3. ubuntu查看OpenCV的版本和安装的库
  4. mysql 删除原理_MySQL权限原理及删除MySQL的匿名账户
  5. cgi,fastcgi,php-cgi,php-fpm之间的关系
  6. php绝对路径与相对路径之间关系的的深入研究
  7. js实现鼠标拖拽功能基本思路
  8. VBA操作word生成sql语句
  9. java特性,健壮性,程序设计风格及文档
  10. vector与list的区别
  11. 求解算术表达式结合二叉树的后缀表达式问题
  12. html 遮罩层在底部,底部弹出遮罩层.html
  13. 使用jxls技术导入Excel模版数据(转自其他博客)
  14. 软件测试——测试用例的编写
  15. 网上打开与关闭gps几种方案测试,其中方案3可行
  16. PropertyUtils 工具类
  17. 51单片机基本工作引脚
  18. USB Host、USB Device和USB otg的理论简析
  19. Plist 文件详解 (一)
  20. 《我的博客》之选择公共博客平台还是自建博客站点

热门文章

  1. AI工程师职业规划和学习路线完整版
  2. Google再次从官方商店下架伪装成合法程序的恶意应用
  3. Oracle .事物,提交,回滚
  4. Spring+Quartz(一)
  5. 开源Registry项目Harbor源代码结构解析
  6. 实数历史无穷小能否带领我们直接走向今日科学之辉煌?
  7. (转)解读NTFS(一)
  8. 36岁自学C语言,C语言的数据类型
  9. centos 6.5 yum java_Centos6.5 yum 安装jdk1.8
  10. eclipse 国内镜像高速下载