kubernetes部署dashboard可视化插件
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可视化插件相关推荐
- 部署 Dashboard可视化插件
dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息.用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用的状态.执行故障排查任务以及管理 K ...
- 第二篇:kubernetes部署calico网络插件
说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...
- 第五篇:kubernetes部署dashboard(图形化界面)
说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...
- Kubernetes 1.22.9搭建 和 部署dashboard可视化UI
文章目录 前言 集群规划 kubernetes的安装 dash board可视化UI的安装 前言 参考博客:https://blog.csdn.net/qq_41632602/article/deta ...
- kubernetes 部署 dashboard(详细步骤)
1. 部署 执行命令: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio ...
- kubernetes部署Dashboard(可通过域名外网访问)
一.安装环境 kubernetes 1.22 Dashboard v2.2.0 二.开始安装 1.参考文章 https://kubernetes.io/zh/docs/tasks/access-app ...
- 部署Kubernetes集群+Dashboard可视化页面-1.18.6版本
Kubeadm 部署 Kubernetes1.18.6 集群 一.环境说明 主机名 IP地址 角色 系统 k8s-master 192.168.182.150 k8s-master Centos7.6 ...
- 09-2.部署 dashboard 插件
09-2.部署 dashboard 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar. ...
- kubernetes之部署dashboard 和heapster
部署dashboard之前,先确保traefik https方式部署成功,这样就可以通过 https 域名的方式访问dashboard,无需kube-proxy转发了.假设traefik-ingres ...
最新文章
- cent os数据库安装
- PHP配置虚机权限不足的问题
- 深度学习之循环神经网络(2)循环神经网络原理
- 嵌入式计算机的特点和应用,以下描述中,()不是嵌入式操作系统的特点。A.面向应用,可以进行裁剪和移植B.用 - 信管网...
- 史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等
- (转) RabbitMQ学习之发布/订阅(java)
- SAS入门之(四)改变数据类型
- CCA分析图如何解读_欧易/鹿明生物云平台:点点鼠标,轻松完成RDA/CCA分析
- 利用简单电阻分压原理自动测量电阻
- DeeCamp 2019 Exam A 纪实
- Jupyter/IPython笔记本集合 !(附大量资源链接)-上篇
- python海龟画图函数汇总
- 修改音频采样率和单双通道
- 电脑版适合什么插件HTML,推荐一些好用的Chrome插件
- 模拟蒙蒂霍尔悖论游戏
- 蓝紫色食物对心血管最好
- 神经重症患者要防深静脉血栓形成
- [SQL]联表查询:左联
- 百练 / 2019计算机学科夏令营上机考试 F:跳蛙
- 【转】中国青年政治学院公开课:批判性思维 笔记