Dashboard简介

在 Kubernetes 社区中,有一个很受欢迎的 Dashboard 项目,它可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

部署Dashboard

官方文档:
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

项目地址:
https://github.com/kubernetes/dashboard

helm 地址:
https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard
https://github.com/kubernetes/dashboard/tree/master/aio/deploy/helm-chart/kubernetes-dashboard

注意确认dashboard版本与kubernetes版本兼容性:
https://github.com/kubernetes/dashboard/releases

添加helm repo

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/

安装dashboard

helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \--namespace kubernetes-dashboard \--create-namespace \--set replicaCount=2 \--set service.type=NodePort \--set service.nodePort=30080 \--set resources.limits.cpu=200m

查看dashboard运行状态,以deployment方式部署,运行2副本pod及1个service:

[root@iZj6cc0krt5qucp7c4truyZ ~]# kubectl -n kubernetes-dashboard get pods
NAME                                    READY   STATUS    RESTARTS   AGE
kubernetes-dashboard-796f4764c9-b55bb   1/1     Running   0          9m51s
kubernetes-dashboard-796f4764c9-b7qwj   1/1     Running   0          31s[root@iZj6cc0krt5qucp7c4truyZ ~]# kubectl -n kubernetes-dashboard get svc
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.233.22.92   <none>        443:30080/TCP   9m58s

Dashboard 支持 Kubeconfig 和 Token 两种认证方式,这里选择Token认证方式登录,默认serviceaccount只有读权限,这里创建admin用户。

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

创建dashboard-admin.yaml:

cat > dashboard-admin.yaml << EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubernetes-dashboardnamespace: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard
EOF

创建登录用户

kubectl apply -f dashboard-admin.yaml

查看admin-user账户的token

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/kubernetes-dashboard -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

登陆dashboard,由于使用nodeport方式暴露服务,访问方式为https://任意节点IP+NodePort:

https://36.134.133.238:30080/

把获取到的Token复制到登录界面的Token输入框中:

成功登陆dashboard:

删除dashboard

helm -n kubernetes-dashboard uninstall kubernetes-dashboard

配置ingress及可信SSL证书

以上方式默认使用nodeport暴露服务,证书也为自签名证书,下面使用ingress暴露dashboard服务并使用可信SSL证书。

前提条件:

  • 集群已部署ingress控制器,本次使用ingress-nginx-controller
  • 公网可用域名,本次使用阿里云自有域名dashboard.apps.cloudcele.com
  • 公网SSL可信证书,本次使用acme.sh生成免费证书,有效期三个月,默认自动续期

证书申请:

# 安装acme.sh
curl https://get.acme.sh | sh -s email=willzhmic@outlook.com#由于使用阿里云域名,可直接使用accessKEY调用阿里云API自动为域名签发证书
export Ali_Key="xxxxxx"
export Ali_Secret="xxxxxx"# 注意申请的是泛域名证书,任何匹配 * 的域名都可使用该证书
acme.sh --issue --dns dns_ali -d apps.cloudcele.com -d *.apps.cloudcele.com

查看本地生成的证书

[root@localhost ~]# ll /root/.acme.sh/apps.cloudcele.com/
total 36
-rw-r--r-- 1 root root 2329 Sep  3 17:15 apps.cloudcele.com.cer
-rw-r--r-- 1 root root  591 Sep  3 17:15 apps.cloudcele.com.conf
-rw-r--r-- 1 root root  997 Sep  3 17:14 apps.cloudcele.com.csr
-rw-r--r-- 1 root root  178 Sep  3 17:14 apps.cloudcele.com.csr.conf
-rw-r--r-- 1 root root 1679 Sep  3 17:08 apps.cloudcele.com.key
-rw-r--r-- 1 root root 4399 Sep  3 17:15 ca.cer
-rw-r--r-- 1 root root 6728 Sep  3 17:15 fullchain.cer

在集群中创建secrets以引用证书,仅用到fullchain.cer证书和apps.cloudcele.com.key密钥两个文件:

cd /root/.acme.sh/apps.cloudcele.com/kubectl -n kubernetes-dashboard create secret tls kubernetes-dashboard-tls \--key ./apps.cloudcele.com.key \--cert ./fullchain.cer

使用helm部署dashboard

helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \--namespace kubernetes-dashboard \--create-namespace \--version 2.0.3 \--set replicaCount=2 \--set service.type=ClusterIP \--set resources.limits.cpu=200m \--set ingress.enabled=true \--set ingress.path=/ \--set ingress.hosts[0]=dashboard.apps.cloudcele.com \--set ingress.tls[0].hosts[0]=dashboard.apps.cloudcele.com \--set ingress.tls[0].secretName=kubernetes-dashboard-tls

浏览器访问验证:

使用dashboard

创建示例deployment,使用nodeport向集群外暴露服务。

yaml编写参考:
https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/
https://kubernetes.io/docs/concepts/services-networking/service/#nodeport

默认视图在default命名空间,可自行切换namespace,点击右上角+号创建资源:

有三种方式创建资源,这里使用第一种方式部署一个简单的nginx-app,设置2个副本,nodePort方式暴露服务,粘贴已经编写好的yaml文件点击upload:

apiVersion: apps/v1
kind: Deployment
metadata:name: my-nginx-app
spec:selector:matchLabels:run: my-nginx-appreplicas: 2template:metadata:labels:run: my-nginx-appspec:containers:- name: my-nginx-appimage: nginxports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: my-nginx-applabels:run: my-nginx-app
spec:type: NodePortports:- port: 80protocol: TCPtargetPort: 80nodePort: 30081selector:run: my-nginx-app

集群外浏览器访问应用:http://<node_ip>:30081

点击deployment可以增加应用副本,查看和更新yaml配置,以及删除整个应用:

点击pod可以查看pod实时打印日志以及下载日志到本地,也可以登录到pod命令行界面,进入容器执行命令进行调试,以及更新pod yaml文件或删除pod(重启):

kubernetes部署dashboard可视化插件相关推荐

  1. 部署 Dashboard可视化插件

    dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息.用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用的状态.执行故障排查任务以及管理 K ...

  2. 第二篇:kubernetes部署calico网络插件

    说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...

  3. 第五篇:kubernetes部署dashboard(图形化界面)

    说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...

  4. Kubernetes 1.22.9搭建 和 部署dashboard可视化UI

    文章目录 前言 集群规划 kubernetes的安装 dash board可视化UI的安装 前言 参考博客:https://blog.csdn.net/qq_41632602/article/deta ...

  5. kubernetes 部署 dashboard(详细步骤)

    1. 部署 执行命令: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio ...

  6. kubernetes部署Dashboard(可通过域名外网访问)

    一.安装环境 kubernetes 1.22 Dashboard v2.2.0 二.开始安装 1.参考文章 https://kubernetes.io/zh/docs/tasks/access-app ...

  7. 部署Kubernetes集群+Dashboard可视化页面-1.18.6版本

    Kubeadm 部署 Kubernetes1.18.6 集群 一.环境说明 主机名 IP地址 角色 系统 k8s-master 192.168.182.150 k8s-master Centos7.6 ...

  8. 09-2.部署 dashboard 插件

    09-2.部署 dashboard 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar. ...

  9. kubernetes之部署dashboard 和heapster

    部署dashboard之前,先确保traefik https方式部署成功,这样就可以通过 https 域名的方式访问dashboard,无需kube-proxy转发了.假设traefik-ingres ...

最新文章

  1. cent os数据库安装
  2. PHP配置虚机权限不足的问题
  3. 深度学习之循环神经网络(2)循环神经网络原理
  4. 嵌入式计算机的特点和应用,以下描述中,()不是嵌入式操作系统的特点。A.面向应用,可以进行裁剪和移植B.用 - 信管网...
  5. 史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等
  6. (转) RabbitMQ学习之发布/订阅(java)
  7. SAS入门之(四)改变数据类型
  8. CCA分析图如何解读_欧易/鹿明生物云平台:点点鼠标,轻松完成RDA/CCA分析
  9. 利用简单电阻分压原理自动测量电阻
  10. DeeCamp 2019 Exam A 纪实
  11. Jupyter/IPython笔记本集合 !(附大量资源链接)-上篇
  12. python海龟画图函数汇总
  13. 修改音频采样率和单双通道
  14. 电脑版适合什么插件HTML,推荐一些好用的Chrome插件
  15. 模拟蒙蒂霍尔悖论游戏
  16. 蓝紫色食物对心血管最好
  17. 神经重症患者要防深静脉血栓形成
  18. [SQL]联表查询:左联
  19. 百练 / 2019计算机学科夏令营上机考试 F:跳蛙
  20. 【转】中国青年政治学院公开课:批判性思维 笔记

热门文章

  1. 移动端web开发---Touch事件详解
  2. mysql复制表以及复制数据库
  3. 计算机辅助教学英语教案,谈英语计算机辅助教学
  4. 数据分析案例-旅游景点票价预测
  5. json对象的遍历(C++)
  6. [力扣c++实现] 221. 最大正方形
  7. 攻防实战:如何检测或优化内存中的.NET Tradecraft
  8. 读《半生烟雨,半世落花:李清照传》小感
  9. RT-Thread Studio 红外Infrared使用笔记
  10. 楚琳Web打印控件可以在MVC中调用嘛?