有史以来最详细 安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题)
安装部署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等问题)相关推荐
- [原]部署kubernetes dashboard(二)
####################### 以下为声明 ##################### 此文档是之前做笔记在两台机上进行的实践,kubernetes处于不断开发阶段 不能保证每 ...
- 使用 KubeKey 安装部署 Kubernetes 与 Kube-OVN
作者简介:林瑞超,锐捷网络开发工程师, KubeSphere 社区 contributor, 关注Kube-OVN, Cilium 等容器网络相关技术 背景 KubeKey 是 KubeSphere ...
- Centos7 安装部署Kubernetes(k8s)集群过程
1.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.9 Docker version 20.10.12 x86_64 2.前言 如下图描述了软件部 ...
- nacos详细安装部署与异常排解
nacos详细安装部署与异常排解 官网 官网链接:https://nacos.io/zh-cn/docs/quick-start.html 异常排查解决 Invalid default value f ...
- 部署Kubernetes Dashboard 及监控组件 Heapster
部署Dashboard 项目地址:https://github.com/kubernetes/dashboard 1.下载官方提供的 Dashboard 组件部署的 yaml 文件 wget http ...
- Nginx Linux详细安装部署教程
Nginx Linux详细安装部署教程 一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入 ...
- H3C iMC PLAT 安装部署相关问题及解决方法1
H3C iMC PLAT 安装部署相关问题及解决方法1 参考文章: (1)H3C iMC PLAT 安装部署相关问题及解决方法1 (2)https://www.cnblogs.com/xiaorong ...
- 安装部署 Kubernetes 仪表板(Dashboard)
简介 Kubernetes 仪表板(Dashboard)是基于网页的 Kubernetes 用户界面. 你可以使用仪表板: 展示了 Kubernetes 集群中的资源状态信息和所有报错信息. 把容器应 ...
- nginx linux详细安装部署教程,Nginx Linux详细安装及部署实战
Nginx Linux详细安装及部署实战 Nginx 常用基础命令 #启动 Nginx /usr/local/webserver/nginx/sbin/nginx #默认配置文件 /usr/local ...
最新文章
- 每日一皮:这题作的没毛病...
- 计算机二级一年几次湖南省,湖南省计算机二级多少分可以通过
- ubuntu查看OpenCV的版本和安装的库
- mysql 删除原理_MySQL权限原理及删除MySQL的匿名账户
- cgi,fastcgi,php-cgi,php-fpm之间的关系
- php绝对路径与相对路径之间关系的的深入研究
- js实现鼠标拖拽功能基本思路
- VBA操作word生成sql语句
- java特性,健壮性,程序设计风格及文档
- vector与list的区别
- 求解算术表达式结合二叉树的后缀表达式问题
- html 遮罩层在底部,底部弹出遮罩层.html
- 使用jxls技术导入Excel模版数据(转自其他博客)
- 软件测试——测试用例的编写
- 网上打开与关闭gps几种方案测试,其中方案3可行
- PropertyUtils 工具类
- 51单片机基本工作引脚
- USB Host、USB Device和USB otg的理论简析
- Plist 文件详解 (一)
- 《我的博客》之选择公共博客平台还是自建博客站点