k8s 安装部署dashboard仪表板

2023-12-25 23:30

本文主要是介绍k8s 安装部署dashboard仪表板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

dashboard仪表板

    • 一、概述
    • 二、安装环境
    • 三、获得yaml
    • 四、修改yaml文件
      • 1、修改dashboard-controller.yaml
      • 2、修改dashboard-service.yaml
    • 五、部署dashboard
      • 1、 创建自签证书
      • 2、创建token令牌
    • 六、验证访问dashboard
    • 七、关于ServiceAccount

一、概述

Kubernetes仪表板是用于Kubernetes集群的基于web的通用UI。
它允许用户管理集群中运行的应用程序、故障排除以及管理集群本身

二、安装环境

这里已经用二进制部署好了一套多master的k8s集群

k8s集群master01:192.168.245.211
k8s集群master02:192.168.245.206k8s集群node01:192.168.245.209
k8s集群node02:192.168.245.210etcd集群节点1:192.168.245.211
etcd集群节点2:192.168.245.209
etcd集群节点3:192.168.245.210

三、获得yaml

首先进入k8s的github:https://github.com/kubernetes/kubernetes

因为k8s我们安装的版本是1.12.3版本所以到github找到相对应的dashboard版本,复制yaml到本地
注意:高版本的dashboard版本可能会不兼容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

或者直接访问:https://github.com/kubernetes/kubernetes/tree/release-1.12/cluster/addons/dashboard

在这里插入图片描述
在这里插入图片描述

四、修改yaml文件

首先新建一个dashboard目录,用于存放所有dashboard相关文件

[root@master01 ~]# cd k8s/
[root@master01 k8s]# mkdir dashboard

将5个yaml文件上传到虚拟机上

[root@master01 dashboard]# ls
dashboard-controller.yaml   dashboard-secret.yaml   dashboard-configmap.yaml    dashboard-rbac.yaml  dashboard-service.yaml

1、修改dashboard-controller.yaml

找到image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
将镜像改成:siriuszg/kubernetes-dashboard-amd64:v1.8.3
否则镜像拉取会报错,因为k8s.gcr.io是国外的网站,因为某些不可描述的问题镜像拉取不下来的

在这里插入图片描述

2、修改dashboard-service.yaml

在dashboard-service.yaml添加如下两行内容

spec:type: NodePortselector:k8s-app: kubernetes-dashboardports:- port: 443targetPort: 8443nodePort: 30001

在这里插入图片描述

五、部署dashboard

应用5个yaml文件,注意执行的顺序!!!

[root@master01 dashboard]# kubectl create -f dashboard-rbac.yaml 
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created[root@master01 dashboard]# kubectl create -f dashboard-secret.yaml 
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-key-holder created[root@master01 dashboard]# kubectl create -f dashboard-configmap.yaml 
configmap/kubernetes-dashboard-settings created[root@master01 dashboard]# kubectl create -f dashboard-controller.yaml 
serviceaccount/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created[root@master01 dashboard]# kubectl create -f dashboard-service.yaml 
service/kubernetes-dashboard created

查看该命名空间下的pod,Running表示正常,如果是在指定命名空间下创建的pod查看需要-n [命名空间]

[root@master01 etcd-cert]# kubectl get pods -n kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
kubernetes-dashboard-65f974f565-7n8qv   1/1     Running   10         28m

访问网页出现如下界面无法访问,由于是https协议访问的,所以必须需要证书
这里用的谷歌浏览器,用firefox没有这个问题

在这里插入图片描述

1、 创建自签证书

创建自签证书,根证书还是用的之前创建k8s集群的那一套,这里写了一个脚本,签发证书,生成dashboard的证书

[root@master01 dashboard]# vim vim dashboard-cert.sh

在这里插入图片描述

[root@master01 dashboard]# bash dashboard-cert.sh /root/k8s/k8s-cert/
2020/10/11 14:12:40 [INFO] generate received request
2020/10/11 14:12:40 [INFO] received CSR
2020/10/11 14:12:40 [INFO] generating key: rsa-2048
2020/10/11 14:12:40 [INFO] encoded CSR
2020/10/11 14:12:40 [INFO] signed certificate with serial number 554203672686759515690476517992263359047347411388
2020/10/11 14:12:40 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
secret "kubernetes-dashboard-certs" deleted
secret/kubernetes-dashboard-certs created

修改yaml添加证书文件

[root@master01 dashboard]# vim dashboard-controller.yaml args:# PLATFORM-SPECIFIC ARGS HERE- --auto-generate-certificates- --tls-key-file=dashboard-key.pem   //添加dashboard私钥- --tls-cert-file=dashboard.pem      //添加dashboard证书

重新应用yaml文件

[root@master01 dashboard]# kubectl apply -f dashboard-controller.yaml
serviceaccount/kubernetes-dashboard unchanged
deployment.apps/kubernetes-dashboard configured

重新查看pod信息,这里可以看到dashboard这次部署在了另外一台节点上

[root@master01 dashboard]# kubectl get pods,svc -n kube-system -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP            NODE              NOMINATED NODE
pod/kubernetes-dashboard-7dffbccd68-f4rhv   1/1     Running   0          60s   172.17.75.2   192.168.245.210   <none>NAME                           TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE     SELECTOR
service/kubernetes-dashboard   NodePort    10.0.0.250   <none>        443:30001/TCP   49m     k8s-app=kubernetes-dashboard

再次访问网页,因为这个证书是我们自己签发的,谷歌浏览器不认,点击“高级”

在这里插入图片描述

点击“继续前往”

在这里插入图片描述

2、创建token令牌

点击进入之后出现如下界面,这一步主要是dashboard为了鉴权,什么人登陆进来需要给什么样的权限,实际上就是选择以什么样的方式登录,这里选择令牌

在这里插入图片描述
因为每个ServiceAccount都会产生一个secret,所以这里创建一个服务账户叫做dashboard-admin,并进行集群角色的绑定,把这个用户跟集群角色cluter-admin进行绑定,让它拥有cluter-admin的权限,而cluter-admin拥有最高权限

其实这一步的目的就是创建一个账户,让他具有集群管理员的权限登录到dashboard

[root@master01 dashboard]# vim k8s-admin.yaml

在这里插入图片描述

应用此yaml文件

[root@master01 dashboard]# kubectl apply -f k8s-admin.yaml
serviceaccount/dashboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created

查看令牌,dashboard-admin-token-vbm2k这个就是我们生成的token

[root@master01 dashboard]# kubectl get secret -n kube-system
NAME                               TYPE                                  DATA   AGE
dashboard-admin-token-vbm2k        kubernetes.io/service-account-token   3      8s
default-token-x4rjz                kubernetes.io/service-account-token   3      11d
kubernetes-dashboard-certs         Opaque                                10     9m23s
kubernetes-dashboard-key-holder    Opaque                                2      63m
kubernetes-dashboard-token-svz9c   kubernetes.io/service-account-token   3      63m
metrics-server-token-88l8l         kubernetes.io/service-account-token   3      2d18h

查看token的详情

[root@master01 dashboard]# kubectl describe secret dashboard-admin-token-vbm2k -n kube-system

在这里插入图片描述

回到浏览器

在这里插入图片描述

六、验证访问dashboard

成功登陆,出现如下界面,就可以对k8s集群进行管理了

在这里插入图片描述

注:如果pod状态不正常,可以使用如下命令查看详细信息进行排错

kubectl describe pod kubernetes-dashboard-7dffbccd68-f4rhv(pod名称) -n kube-system

七、关于ServiceAccount

有人会问,为什么controller.yaml文件里官方已经默认创建好了一个ServiceAccount了为什么鉴权时还需要再创建一个呢?
因为实验发现官方默认给的这个ServiceAccount给的是最小权限

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如果用这个token登陆,你会发现虽然登陆进去dashboard了但是基本上能看到的东西很少,所以我们直接创建一个具有管理员权限的账户登陆,便于我们集群的管理和操作

在这里插入图片描述

这篇关于k8s 安装部署dashboard仪表板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/537351

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者