千家信息网

dashboard有什么用?怎么安装和配置dashboard?

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,一、k8s的UI访问界面-dashboard在dashboard中,虽然可以做到创建、删除、修改资源等操作,但通常情况下,我们会把它当做健康k8s集群的软件。作为Kubernetes的Web用户界面,
千家信息网最后更新 2025年02月19日dashboard有什么用?怎么安装和配置dashboard?

一、k8s的UI访问界面-dashboard

在dashboard中,虽然可以做到创建、删除、修改资源等操作,但通常情况下,我们会把它当做健康k8s集群的软件。

作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理。通过Dashboard,用户可以查看集群中应用的运行情况,同时也能够基于Dashboard创建或修改部署、任务、服务等Kubernetes的资源。通过部署向导,用户能够对部署进行扩缩容,进行滚动更新、重启Pod和部署新应用。当然,通过Dashboard也能够查看Kubernetes资源的状态。

1、Dashboard提供的功能

在默认情况下,Dashboard显示默认(default)命名空间下的对象,也可以通过命名空间选择器选择其他的命名空间。在Dashboard用户界面中能够显示集群大部分的对象类型。

1)集群管理

集群管理视图用于对节点、命名空间、持久化存储卷、角色和存储类进行管理。 节点视图显示CPU和内存的使用情况,以及此节点的创建时间和运行状态。 命名空间视图会显示集群中存在哪些命名空间,以及这些命名空间的运行状态。角色视图以列表形式展示集群中存在哪些角色,这些角色的类型和所在的命名空间。 持久化存储卷以列表的方式进行展示,可以看到每一个持久化存储卷的存储总量、访问模式、使用状态等信息;管理员也能够删除和编辑持久化存储卷的YAML文件。

2) 工作负载

工作负载视图显示部署、副本集、有状态副本集等所有的工作负载类型。在此视图中,各种工作负载会按照各自的类型进行组织。 工作负载的详细信息视图能够显示应用的详细信息和状态信息,以及对象之间的关系。

3) 服务发现和负载均衡

服务发现视图能够将集群内容的服务暴露给集群外的应用,集群内外的应用可以通过暴露的服务调用应用,外部的应用使用外部的端点,内部的应用使用内部端点

4) 存储

存储视图显示被应用用来存储数据的持久化存储卷申明资源。

5) 配置

配置视图显示集群中应用运行时所使用配置信息,Kubernetes提供了配置字典(ConfigMaps)和秘密字典(Secrets),通过配置视图,能够编辑和管理配置对象,以及查看隐藏的敏感信息。

6) 日志视图

Pod列表和详细信息页面提供了查看日志视图的链接,通过日志视图不但能够查看Pod的日志信息,也能够查看Pod容器的日志信息。通过Dashboard能够根据向导创建和部署一个容器化的应用,当然也可以通过手工的方式输入指定应用信息,或者通过上传YAML和JSON文件来创建和不受应用。

2、下载所需yaml文件和镜像

[root@master https]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml[root@master https]# docker pull kubernetesui/dashboard:v2.0.0-rc5

3、修改 recommended.yaml

[root@master https]#vim recommended.yaml ---kind: ServiceapiVersion: v1metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kubernetes-dashboardspec:  type: NodePort            #添加40  ports:    - port: 443      targetPort: 8443  selector:    k8s-app: kubernetes-dashboard

执行一下

[root@master https]# kubectl apply -f recommended.yaml

查看一下

[root@master https]# kubectl get svc -n kubernetes-dashboard 

3、浏览器访问https://192.168.1.21:32306

PS:如果是使用的旧版本的dashboard, 使用Google浏览器登录,可能是不成功的,需要换成其他的浏览器,比如:火狐。

4、基于token的方法登录dashboard

<1>创建一个dashboard的管理用户

[root@master https]# kubectl create serviceaccount dashboard-admin -n kube-system

<2>绑定用户为集群管理用户

[root@master https]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

<3>获取Token

[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin//先得到Token的名称

[root@master https]# kubectl describe secrets -n kube-system  dashboard-admin-token-62bh9//查看上述得到的secret资源的详细信息,会得到token

<4>在浏览器上使用token登录。

创建一个资源

查看是否创建成功

5、基于kubeconfig配置文件的方法登录dashboard

<1>获取Token

[root@master https]# kubectl get secrets -n kube-system | grep dashboard-admin//先得到Token的名称

[root@master https]# kubectl describe secrets -n kube-system  dashboard-admin-token-62bh9//查看上述得到的secret资源的详细信息,会得到token

<2>生成kubeconfig配置文件。

设置一个环境变量代表获取的token

[root@master https]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-62bh9  -o jsonpath={.data.token} | base64 -d)

将k8s集群的配置信息写入kubeconfig配置文件中。

[root@master https]# kubectl config set-cluster kubernetes --server=192.168.1.21:6443 --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/.dashboard-admin.conf 
[root@master https]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
[root@master https]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf

<3>将生成的/root/.dashboard-admin.conf的配置文件,导出并做保存。

[root@master https]# sz /root/.dashboard-admin.conf //导出到自己习惯的位置即可

<4>从浏览器选择kubeconfig的登录方式,然后导入配置文件即可。

二、部署weave-scope监控k8s集群

Weave Scope 是 Docker 和 Kubernetes 可视化监控工具。Scope 提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断。

使用scope

  • Scope 会自动构建应用和集群的逻辑拓扑。比如点击顶部 PODS,会显示所有 Pod 以及 Pod 之间的依赖关系。
  • 点击 HOSTS,会显示各个节点之间的关系。

    实时资源监控

  • 可以在 Scope 中查看资源的 CPU 和内存使用情况。
  • 支持的资源有 Host、Pod 和 Container。**

    在线操作

  • Scope 还提供了便捷的在线操作功能,比如选中某个 Host,点击 >_ 按钮可以直接在浏览器中打开节点的命令行终端
  • 点击 Deployment 的 + 可以执行 Scale Up 操作
  • 可以查看 Pod 的日志
  • 可以 attach、restart、stop 容器,以及直接在 Scope 中排查问题

    强大的搜索功能

  • Scope 支持关键字搜索和定位资源。
  • 还可以进行条件搜索,比如查找和定位 MEMORY > 100M 的 Pod。

1、在github上查找scope的yaml文件

(1)github上搜索scope

(2)进入k8s的部署scope的说明

(3)选择k8s的部署

(4)复制上面的链接,并下载yaml文件

[root@master https]# wget https://cloud.weave.works/k8s/scope.yaml

2、修改下载的yaml文件并运行

[root@master ~]# vim scope.yaml  #编辑yaml文件#跳转至213行,修改其service的端口类型    spec:      type: NodePort         #修改类型为NodePort      ports:        - name: app          port: 80          protocol: TCP          targetPort: 4040

(1)执行一下

[root@master https]# kubectl apply -f scope.yaml 

(2)查看容器的运行情况,确定处于正常运行

[root@master https]# kubectl get  pod -o wide -n weave

  • DaemonSet weave-scope-agent,集群每个节点上都会运行的 scope agent 程序,负责收集数据。
  • Deployment weave-scope-app,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互。
  • Service weave-scope-app,默认是 ClusterIP 类型,我们已经在上面的命令中添加了参数k8s-service-type=NodePort修改为 NodePort。
[root@master https]# kubectl get svc -n weave 

#DaemonSet资源对象:weave-scope-agent(代理):负责收集节点的信息;
#deployment资源对象:weave-scope-app(应用):从agent获取数据,通过web UI展示并与用户交互;
#DaemonSet资源对象的特性和deployment相比,就是DaemonSet资源对象会在每个节点上都运行且只能运行一个pod。
#由于每个节点都需要监控,所以用到了DaemonSet这种资源对象

3、浏览器访问一下http://192.168.1.21:31841/

在scope的web界面中,可以查看很多的东西,pod、node节点等详细信息,包括打开容器的终端,查看其日志信息等等

总结

weave scope可以以其简洁的可视化为我们更生动形象的展现出service/controller/pod等资源对象的管理及简单的web ui操作,方便故障排除及时定位
weave scope作为web ui目前缺少登录验证,可以利用其他方式里面web服务器的验证做安全管控。

三、部署Prometheus服务

PS:在这里部署的prometheus,并不是Prometheus官网提供的,而是使用的coreos提供的prometheus项目。

在部署之前,先来了解一下Prometheus各个组件的作用吧!

  • MetricsServer: 是k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。
  • Prometheus Operator : 是一个系统检测和警报工具箱,用来存储监控数据。
  • Prometheus node-exporter :收集k8s集群资源的数据,指定告警规则。
  • Prometheus :收集apiserver,scheduler,controller-manager,kubelet组件的数据,通过http协议传输。
  • Grafana: 可视化数据统计和监控平台。

特征

Prometheus 相比于其他传统监控工具主要有以下几个特点:

  • 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型
  • 有一个灵活的查询语言
  • 不依赖分布式存储,只和本地磁盘有关
  • 通过 HTTP 的服务拉取时间序列数据
  • 也支持推送的方式来添加时间序列数据
  • 还支持通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持

1、在github上搜索coreos/prometheus

复制链接

2、克隆github上的promethes项目

[root@master promethes]# yum -y install git//下载git命令[root@master promethes]# git clone  https://github.com/coreos/kube-prometheus.git//克隆github上的项目

3、修改grafapa-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31001.。

[root@master promethes]# cd kube-prometheus/manifests///进入kube-prometheus的manifests目录[root@master manifests]# vim grafana-service.yaml    #修改grafana的yaml文件apiVersion: v1kind: Servicemetadata:  labels:    app: grafana  name: grafana  namespace: monitoringspec:  type: NodePort       #改为NodePort类型  ports:  - name: http    port: 3000    targetPort: http    nodePort: 31001    #映射到宿主机31001端口  selector:    app: grafana

3.修改prometheus-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31002.

[root@master manifests]# vim prometheus-service.yaml    #修改prometheus的yaml文件apiVersion: v1kind: Servicemetadata:  labels:    prometheus: k8s  name: prometheus-k8s  namespace: monitoringspec:  type: NodePort      #改为NodePort类型  ports:  - name: web    port: 9090    targetPort: web    nodePort: 31002    #映射到宿主机31002端口  selector:    app: prometheus    prometheus: k8s  sessionAffinity: ClientIP

4、修改alertmanager-service.yaml文件, 更改为nodePort的暴露方式,暴露端口为31003

[root@master manifests]# vim alertmanager-service.yaml    #修改alertmanager的yaml文件apiVersion: v1kind: Servicemetadata:  labels:    alertmanager: main  name: alertmanager-main  namespace: monitoringspec:  type: NodePort             #改为NodePort类型  ports:  - name: web    port: 9093    targetPort: web    nodePort: 31003         #映射到宿主机31003端口  selector:    alertmanager: main    app: alertmanager  sessionAffinity: ClientIP

5、将setup目录中所有的yaml文件,全部运行。是运行以上yaml文件的基础环境配置。

[root@master manifests]# cd setup///进入setup/目录[root@master manifests]# kubectl apply -f setup///运行setup目录中所有的yaml文件

6、将主目录(kube-prometheus)中所有的yaml文件,全部运行。

当执行以下yaml文件时,每个节点会在互联网上下载很多镜像,为了防止下载镜像的时间过长,可以先将我提供的镜像下载到本地,然后导入至各个节点,然后在执行下面的yaml文件,将会省些时间。(如果下载我提供的镜像,建议写个导入镜像的脚本进行导入操作,避免手动导入,造成错误)

[root@master manifests]# cd ..//返回上一级目录(kube-prometheus)[root@master kube-prometheus]# kubectl apply -f manifests///运行kube-prometheus目录中所有的yaml文件

查看一下

[root@master ~]# kubectl get pod -n monitoring

7、浏览器访问一下http://192.168.1.21:31001

客户端访问群集中任意节点的IP+30100端口,即可看到以下界面(默认用户名和密码都是admin)

根据提示更改密码:

(1)添加模板

依次点击"import"进行导入下面三个模板:

(2)进行以下点击,即可查看群集内的监控状态

以下可看到监控状态

8、导入监控模板

从grafana的官网搜索https://grafana.com/


复制以下这个模板的id

现在可以看到监控画面了

文件 集群 应用 资源 信息 视图 运行 配置 数据 节点 用户 存储 监控 对象 类型 管理 服务 方式 浏览器 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全法对网络运营者的义务 徐州在线项目管控软件开发平台 学生网络安全的作品 微信智能家居需要服务器吗 建立用户联系方式数据库优点 绿园区网络技术质量保障 村游网络技术有限公司 打捞服务器 手机软件开发需要什么 云服务器搭建专用网盘 5g时代美国互联网科技 如何将聊天记录同步至服务器 网络安全有趣的图片 互联网科技版块的股票有哪些 如何考察一个软件开发公司 爱买不买软件开发 网络安全知识内容30字 网络安全股起飞 怎么恢复qq中的数据库文件 怎么打开电脑服务器管理器 我的世界网易版服务器怎么加32k 数据库可以全文检索pdf吗 计算机网络技术如何选择 服务器最大内存条 深信服上网管理服务器 重庆财经学院有软件开发专业吗 软件开发是学些什么东西 大学生树立网络安全意识的好处 sql管理数据库教学视频 浙江软件开发建设
0