千家信息网

k8s群集的三种Web-UI界面部署

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,博文大纲:一、部署dashboard的Web-UI界面二、部署weave-scope监控k8s集群三、部署Prometheus服务一、部署dashboard的Web-UI界面1、下载yaml文件配置并
千家信息网最后更新 2024年10月19日k8s群集的三种Web-UI界面部署

博文大纲:
一、部署dashboard的Web-UI界面
二、部署weave-scope监控k8s集群
三、部署Prometheus服务

一、部署dashboard的Web-UI界面

1、下载yaml文件配置并执行

#下载github上的项目(github搜索dashboard即可找到该项目)[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml[root@master ~]# vim kubernetes-dashboard.yaml #跳转至112行,修改其指定的镜像,修改如下:        image: registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0#默认指定的是Google的镜像,国外的下载不下来,所以要改为国内阿里云的#跳转到150行,修改其对应的service,将其类型配置为NodePort,修改如下:kind: ServiceapiVersion: v1metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-systemspec:  type: NodePort  #添加类型为NodePort  ports:    - port: 443      targetPort: 8443      nodePort: 30230        #映射到宿主机的端口为30230  selector:    k8s-app: kubernetes-dashboard#修改完成后,保存退出即可[root@master ~]# kubectl apply -f kubernetes-dashboard.yaml    #执行yaml文件[root@master ~]# kubectl get pod -n kube-system | grep dashboard    #确认其正常运行kubernetes-dashboard-6cfb7d8f54-l6jgj   1/1     Running   0          88s

2、客户端通过火狐浏览器访问

必须要用火狐浏览器,Google和默认的edge都无法访问。

1)访问https://192.168.20.6:30230 ,(192.168.20.6是我这里master的IP,实际上访问群集内的任意节点IP+30230端口都可以),然后点击如下:

2)在终端创建用户并查看登录令牌:

[root@master ~]# kubectl create serviceaccount dashboard-admin -n kube-system    #创建dashboard管理用户#绑定用户为集群的管理员[root@master ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin[root@master ~]# kubectl get secrets -n kube-system | grep dashboard-admin  #获取刚刚创建的用户的tokendashboard-admin-token-97g76                      kubernetes.io/service-account-token   3      15s[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-97g76#注意:上面的最后一段取决于上面查看到的用户的secrets名字。Name:         dashboard-admin-token-97g76Namespace:    kube-system        ..................#省略部分内容Data====token:      #将该token字段后面的值复制下来

3)将token值粘贴到下面:

4)至此,即可在web界面进行监控群集节点的信息,及创建资源对象(一般不会在这上面进行创建资源对象):

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

这个服务的yaml文件在github上不太容易找到,还是附上找这个链接的过程吧!如下:

1、github搜索"scope",然后点击如下:

2、进入后,下拉页面,点击"kubernetes",如下:

3、进入后,再次下拉页面:

4、将获得的链接下载:

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

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

[root@master ~]# vim scope.yaml  #编辑yaml文件#跳转至197行,修改其service的端口类型    spec:      type: NodePort         #修改类型为NodePort      ports:        - name: app          port: 80          protocol: TCP          targetPort: 4040          nodePort: 30231        #映射到宿主的端口为30231[root@master ~]# kubectl apply -f scope.yaml      #执行yaml文件#查看容器的运行情况,确定处于正常运行[root@master ~]# kubectl get pod -o wide -n weave    #默认在weave名称空间NAME                                         READY   STATUS    RESTARTS   AGE   IP             NODE     NOMINATED NODE   READINESS GATESweave-scope-agent-b4dwz                      1/1     Running   0          73s   192.168.20.8   node02              weave-scope-agent-lksqh                      1/1     Running   0          73s   192.168.20.7   node01              weave-scope-agent-mv6mj                      1/1     Running   0          73s   192.168.20.6   master              weave-scope-app-78cff98cbc-kxp9v             1/1     Running   0          73s   10.244.2.2     node02              weave-scope-cluster-agent-7cc889fbbf-ngf8j   1/1     Running   0          73s   10.244.1.3     node01              #DaemonSet资源对象:weave-scope-agent(代理):负责收集节点的信息;#deployment资源对象:weave-scope-app(应用):从agent获取数据,通过web UI展示并与用户交互;#DaemonSet资源对象的特性和deployment相比,就是DaemonSet资源对象会在每个节点上都运行且只能运行一个pod。#由于每个节点都需要监控,所以用到了DaemonSet这种资源对象

6、浏览器访问群集的映射端口30231,如下:

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

三、部署Prometheus服务

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

  • MertricServer:是k8s集群资源使用情况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler
  • PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据;
  • NodeExporter:用于各node的关键度量指标状态数据;
  • kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则;
  • Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输;
  • Grafana:是可视化数据统计和监控平台。

1、在开始前,需要先删除前两个监控平台,要不太消耗系统资源了,如下:

[root@master ~]# kubectl delete -f scope.yaml [root@master ~]# kubectl delete -f kubernetes-dashboard.yaml

2、下载prometheus所需文件:

[root@master ~]# mkdir prometheus[root@master ~]# cd prometheus/[root@master prometheus]# yum -y install git       #安装git命令#克隆远端github库[root@master prometheus]# git clone https://github.com/coreos/kube-prometheus.git[root@master prometheus]# cd kube-prometheus/manifests/    #进入克隆下的目录

3、修改各个组件service的yaml文件

[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: 30100    #映射到宿主机30100端口  selector:    app: grafana[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: 30200    #映射到宿主机30200端口  selector:    app: prometheus    prometheus: k8s  sessionAffinity: ClientIP[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: 30300    #映射到宿主机30300端口  selector:    alertmanager: main    app: alertmanager  sessionAffinity: ClientIP

4、执行yaml文件

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

脚本示例如下:

[root@master ~]# vim a.sh  #脚本如下#!/bin/bashcd /root/image        #这个目录下存放的只有我网盘中的镜像for i in `ls /root/image/`do  docker load < ${i}done[root@master ~]# sh a.sh      #执行脚本即可
#必须先执行setup目录下的所有yaml文件,如下:[root@master manifests]# pwd    #确定当前路径/root/prometheus/kube-prometheus/manifests[root@master manifests]# kubectl apply -f setup/     #执行setup目录下的所有yaml文件#再执行manifests目录下的yaml文件[root@master manifests]# cd ..  #返回到上一级目录[root@master kube-prometheus]# kubectl apply -f manifests/   #执行yaml文件[root@master kube-prometheus]# kubectl get pod -n monitoring  #确认所有pod正常运行#如果是选择在线下载镜像,那么可能要半个小时左右才可以正常运行

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

根据提示更改密码:

添加模板:

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

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

-------- 本文至此结束,感谢阅读 --------

文件 资源 端口 节点 镜像 对象 监控 运行 数据 用户 类型 目录 集群 界面 宿主 信息 宿主机 脚本 浏览器 组件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电梯万能服务器怎么调协议 档案管理信息系统数据库设计 数字网络安全防线 智能音响软件开发方案 服务器管理器 安装iis 四川数据库日志审计解决方案 天津web服务器租用虚拟主机 中职生网络技术试题及答案 互联网科技生态链 网络技术对企业的影响 青浦区营销软件开发采购 数据库重置无法进入服务器 visio网络安全模板 网络安全教育知识教学反思 网络安全社区活动总结 软件开发和软件测试哪一个好 源程序下载软件开发 公司有必要用两个数据库吗 mysql数据库导出linux 好的分拣软件开发 桂阳学it软件开发培训学校 杭州分析型数据库 软件开发的概念是什么意思 杭州网络安全宣传周 软件开发计划包含哪些 数据库查询用户是否为合法用户 服务器管理器出现意外错误 国外免费的服务器地址 网络安全法是为了保障网络 魔兽怀旧服世界掉落查询数据库
0