Dashboard的安装和基本使用

1.Dashboard简介:

Dashboard是Kubernetes的Web图形用户界面(GUI),它为用户提供了一个直观的方式来管理和监控Kubernetes集群。

2.实验基础和前置条件:

本实验以Kubernetes集群环境搭建与初始化-CSDN博客为基础和前置条件。

3.Dashboard的安装:

3.1安装Dashboard:

1.在C:\Windows\System32\drivers\etc目录下的host文件中添加以下配置。

复制代码
185.199.111.133    raw.githubusercontent.com

2.在master01主机中,通过以下命令下载Dashboard所需的默认配置文件。

复制代码
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

注意,本实验下载的是支持Kubernetes的Dashboard 2.7.0。

如果无法下载,则通过官网下载然后使用Xftp上传软件包。

3.调整默认配置。如下所示,修改下载的recommended.yaml文件,在其中的Service定义部分增加Service类型的定义和节点端口的定义。

复制代码
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort         #指定Service类型
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30005    #指定外部访问的节点端口
  selector:
    k8s-app: kubernetes-dashboard

具体修改,如下图:

注意:上述修改中,要注意缩进和空格!!!

4.执行以下命令应用recommended.yaml配置文件,创建相应的Kubernetes对象来运行Dashboard。

复制代码
kubectl apply -f recommended.yaml 

执行结果:

  1. 执行以下命令,查看创建的Pod,可以验证Dashboard本身也是以Pod形式部署的。

    kubectl get pod -n kubernetes-dashboard

具体执行结果:

  1. 使用以下命令查看创建的Service。

    kubectl get svc kubernetes-dashboard -n kubernetes-dashboard

具体执行结果:

  1. 根据上图发布的节点端口,通过以下命令访问发布的nginx服务器。

    curl https://master01:30005
    curl https://node01:30005
    curl https://node02:30005

或者直接通过浏览器进行访问:

3.2服务账户和令牌:

与Kubernetes集群交互需要通过认证,认证方式有两种,分别是令牌和kubeconfig文件(即证书)。Dashboard登录可以使用其中任何一种方式。本实验使用最简单令牌方式。因此,我首先要获取集群管理员的令牌。

Kubermetes有两类账户:一类是用户账户(User),适合普通的用户使用;另-类是服务账户(ServiceAccount),专门提供给进程使用,让进程拥有相应的权限。为保护集群数据,默认情况下Dashboard会使用最少的基于角色的访问控制( Role-Based Access Control ,RBAC )配置部署。Dashboard是一个守护进程, 管理员可以创建一个专门 的服务账户供Dashboard使用,并为该账户赋子管理员权限。

1.在master01主机中,使用以下命令在kube-system名称空间中创建名为dashboard-admin的服务账户。

复制代码
kubectl create serviceaccount dashboard-admin -n kube-system

执行结果如下图:

同时,我们可以使用以下命令确认账号创建成功。

复制代码
kubectl get serviceaccounts -n kube-system|grep dashboard-admin

2.在master01主机中,使用以下命令将dashboard-admin服务账户绑定为cluster-admin角色。

复制代码
kubectl create clusterrolebinding dashboard-admin-binding --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

这里绑定角色为Kubernetes内置角色cluster-admin,服务账户为kubesystem名称空间中的dashboard-admin。 cluster-admin角色是超级管理员,具有管理集群的最高权限,相当于Linux系统中的root。具体执行结果,如下图:

另外,我们可以使用以下命令验证角色是否绑定成功。

复制代码
kubectl get clusterrolebindings|grep dashboard-admin-binding

3.使用以下命令生成和打印令牌。

复制代码
kubectl create token dashboard-admin -n kube-system --duration=87600h

上述命令中,--duration用于指定令牌的过期时间。 --duration=87600h代码该令牌10后才过期。

具体执行结果如下图:

注意,上图中的内容就是我们生成的令牌。

3.3登录Dashboard:

在图下中,填上图的令牌信息,点击登录,即进入工作的页面。

登录后的页面:

4.熟悉Dashboard的基本界面:

首先熟悉一下Dashboard的可视化视图操作界面。

4.1导航操作:

当在集群中定义Kubernetes对象时,Dashboard会在初始视图中显示它们。默认情况下只会显示默认名称空间(default)中的对象,可以通过更改导航菜单中的名称空间筛选器进行改变。"命名空间"实际上是名称空间的不同中文翻译,本实验中统一使用"命名空间"。

Dashboard展示大部分Kubermetes对象,可以通过左侧导航栏中的几个菜单类别(如工作负载、服务、配置和存储)来分组访问这些对象。

4.2集群管理:

单击左侧导航栏中的"集群"项,进人Kubernetes集群列表页面,视图再分类列出集群的细信息。也可以通过"集群"分组中的集群角色绑定(Cluster Role Bindings)、节点(Nodes)、称空间、持久卷(Persistent Volumes)等导航节点显示相应的详情视图。

例如,单击"Nodes"显示集群节点列表,单击列表项右侧的:按钮(操作菜单按钮)会弹下拉菜单,可以选择操作该列表项的命令。

在图中,单击"名称"列中的集群节点名称,以进一步查看和操作该节点上的资源(对象)。比如,点击node02节点,进入如图所示的界面,在其中的"Pods" 列表中还可以进一步查看和操作指定的Pod。

4.3工作负载:

1.单击导航栏中的"工作负载"项,进人工作负载列表页面,具体如图所示。

2.在上图的界面,点击Deployments,可以查看所有部署的应用,具体如下图所示。

4.4服务管理:

单击左侧导航栏中的"服务"项,进入服务( Sevics)列表页面,具体如图所示。

5.部署应用:

5.1 在Dashboard,我们通过以下步骤创建部署一个新的nginx应用程序。

1.在上图的页面,点击Deployments列表中的nginx,进入如下图的界面。

2.在上图中,点击左上角的删除按钮,删除我们以前通过命令行部署的ngix应用,具体如下图所示。

3.我可以点击右上角菜单栏中的****+****按钮。

4.然后出现如图相应的"创建新资源"界面。

如图上所示,我们可以通过三种方式创建部署容器应用程序。

  1. .输入并创建:直接输人YAML或JSON格式的手动指定的详细配置。
  2. .从文件创建:导人已有的配置文件。
  3. 从表单创建:根据部署向导提示提供配置信息。

5.在如上图所示的界面中,单击"从表单创建",具体如下图所示。根据部署向导提示输人以下信息。

应用名称: 要创建的应用程序的名称,本例为nginx-test.
容器镜像: 要使用的Docker容器镜像,本例为nginx。
****Pod的数量:****应用程序要部署的Pod的数量,本例为2。系统会创建一个群中运行期望的Pod的数量。

Ser v ****ice:****可以设置为Internal(内部),表示创建一个可以在集群内部访问的Service。如果设置为External(外部),表示创建一个可以从集群外部访问的Service。本例为External。

****端口:****设置Service绑定的端口,即用户访问该Service的端口,本例为8080。

****名称空间:****设置应用程序所属的名称空间,本例为默认值default。

  1. 在上图中,我也可以点击"preview"按钮以YAML或者JSON格式查看该应用程序的Deployment配置清单,具体如下图所示。另外,我们也可以单击"显示高级选项"按钮展开高级选项进一步配置相关选项,如对标签、环境变量等选项进行配置。

确认信息无误后,点击"部署"按钮,完成所定义的应用程序的部署。

7.在上图中,点击"部署"按钮后,系统会自动切换到如下图所示的"Overview"视图。

  1. 在上图中,等待部署完成,然后下拉到如下图的界面。

9.在浏览中,输入http://master01:30775/进行访问测试。其中端口为如上图所示的端口30775。具体测试结果,如下图所示。

本实验到此结束。

相关推荐
bingHHB44 分钟前
电商售后服务系统与其他系统集成:实现售后流程自动化
大数据·运维·数据库·自动化·接口隔离原则·集成学习
huangyuchi.1 小时前
【Linux】权限相关指令
linux·运维·服务器·笔记·指令·权限
☆凡尘清心☆1 小时前
CentOS 7 环境下部署 LAMP
linux·运维·centos
TDengine (老段)1 小时前
TDengine 运维——巡检工具(安装前检查)
大数据·运维·数据库·物联网·时序数据库·tdengine·涛思数据
FBI HackerHarry浩2 小时前
云计算Linux Rocky day02(安装Linux系统、设备表示方式、Linux基本操作)
linux·运维·服务器·rocky
努力学习的小廉7 小时前
深入了解linux系统—— 库的制作和使用
linux·运维·单片机
国际云9 小时前
腾讯云国际站性能调优
运维·服务器·数据库·云计算·腾讯云
眼镜哥(with glasses)10 小时前
0527漏洞原理:XSS笔记
运维·笔记·自动化
奋斗者1号10 小时前
提升WSL中Ubuntu编译速度的完整指南
linux·运维·ubuntu
玄德公笔记10 小时前
ubuntu 22.04安装k8s高可用集群
linux·ubuntu·kubernetes·k8s·containerd·高可用集群·ubuntu 22.04