Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >k8s群集的三种Web-UI界面部署

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

作者头像
小手冰凉
发布于 2020-09-15 01:40:57
发布于 2020-09-15 01:40:57
4.2K00
代码可运行
举报
文章被收录于专栏:小手冰凉小手冰凉
运行总次数:0
代码可运行

一、部署dashboard的Web-UI界面

1、下载yaml文件

//github搜索dashboard找到该项目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//下载yaml文件
[root@docker-k8s01 ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
//编辑yaml文件
[root@docker-k8s01 ~]# vim recommended.yaml 
//跳转到40行左右,修改其对应的service,类型配置为Nodeport
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort    //添加类型为NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31010      //映射到宿主机的端口为31010
  selector:
    k8s-app: kubernetes-dashboard
//执行yaml文件
[root@docker-k8s01 ~]# kubectl apply -f recommended.yaml 
//查看Pod是否运行
[root@docker-k8s01 ~]# kubectl get pod -n kubernetes-dashboard 
//查看其详细信息
[root@docker-k8s01 ~]# kubectl describe pod -n kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-sbcvw 
//确保该yaml文件提供的pod都正常运行
[root@docker-k8s01 ~]# kubectl get svc -n kubernetes-dashboard 
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.103.65.117   <none>        8000/TCP        3m3s
kubernetes-dashboard        NodePort    10.110.154.42   <none>        443:31010/TCP   3m3s

2、访问测试

//这里使用的dashboard版本较高,相较于之前的版本访问必须使用火狐浏览器,这里不需要。

访问https://192.168.171.151:31010(访问集群内的任意节点IP都可以)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//创建dashboard的管理用户
[root@docker-k8s01 ~]# kubectl create serviceaccount dashboard-admin -n kube-system
//绑定用户为集群的管理员
[root@docker-k8s01 ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
//获取刚刚创建的用户Token
[root@docker-k8s01 ~]# kubectl get secrets -n kube-system | grep dashboard-admin
dashboard-admin-token-zbdqm                      kubernetes.io/service-account-token   3      63s
[root@docker-k8s01 ~]# kubectl describe secrets -n kube-system dashboard-admin-token-zbdqm 
//注意:上面的最后一段取决于上面查看到的用户的secrets名字。
Name:         dashboard-admin-token-zbdqm
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: e9716e34-581a-4c30-b601-0a2a254d4a26

Type:  kubernetes.io/service-account-token

Data
====
namespace:  11 bytes
token:        //将token字段后面的值复制下来,如下图      

将Token值粘贴到下面

//至此,就可以在web界面进行监控群集节点的信息,及创建资源对象

注:一般不会在这上面进行创建资源对象

方法二

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//查看刚才创建的token
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
dashboard-admin-token-22n2v                      kubernetes.io/service-account-token   3      11m
//查看token的详细信息,会获取token
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-22n2v
//将token的信息生成一个变量
[root@master ~]#  DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-22n2v -o jsonpath={.data.token} | base64 -d)
//将k8s集群的配置信息写入到一个文件中,文件可自定义
[root@master ~]# kubectl config set-cluster kubernets --server=192.168.10.52:6443 --kubeconfig=/root/.dashboard-admin.conf
Cluster "kubernets" set.
//将token的信息也写入到文件中(同一个文件)
[root@master ~]#  kubectl config set-credentials dashboard-admin --token=${DASH_TOKEN} --kubeconfig=/root/.dashboard-admin.conf
User "dashboard-admin" set.
//用户信息也写入文件中(同一个文件)
[root@master ~]#  kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
Context "dashboard-admin@kubernetes" created.
//将上下文的配置信息也写入文件中(同一个文件)
[root@master ~]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf
Switched to context "dashboard-admin@kubernetes".
//最后将配置信息导入到客户端本地
[root@master ~]# sz /root/.dashboard-admin.conf

//将文件导出后,还是登录到刚刚输入Token的界面,选择kubeconfig,然后将刚才导出的文件上传至此点击登录即可。

本人较懒,这里我就不配图了,见谅。

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

1、下载yaml文件

//github上搜索“scope”

//下拉页面,点击kubernetes

//进入到新页面后再次下拉

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//将获得的链接下载
[root@docker-k8s01 ~]# wget https://cloud.weave.works/k8s/scope.yaml
//修改yaml文件
[root@docker-k8s01 ~]# vim scope.yaml 
//跳转到大概197行左右,修改其service的端口类型
spec:
      type: NodePort    //类型为NodePort
      ports:
        - name: app
          port: 80
          protocol: TCP
          targetPort: 4040
          nodePort: 30123    //配置映射到宿主机的端口
[root@docker-k8s01 ~]# kubectl apply -f scope.yaml 
//查看容器的运行情况
[root@docker-k8s01 ~]# kubectl get pod -o wide -n weave 
NAME                                        READY   STATUS    RESTARTS   AGE    IP                NODE           NOMINATED NODE   READINESS GATES
weave-scope-agent-9vj2w                     1/1     Running   0          119s   192.168.171.151   docker-k8s01   <none>           <none>
weave-scope-agent-h4gt6                     1/1     Running   0          119s   192.168.171.152   docker-k8s03   <none>           <none>
weave-scope-agent-lqzbq                     1/1     Running   0          119s   192.168.171.150   docker-k8s02   <none>           <none>
weave-scope-app-b965dccb7-ph6zg             1/1     Running   0          119s   10.244.1.3        docker-k8s02   <none>           <none>
weave-scope-cluster-agent-6598584d8-h8b9q   1/1     Running   0          119s   10.244.2.3        docker-k8s03   <none>           <none>
//DaemonSet资源对象:weave-scope-agent(代理):负责收集节点的信息;
//deployment资源对象:weave-scope-app(应用):从agent获取数据,通过web UI展示并与用户交互;
//DaemonSet资源对象的特性和deployment相比,就是DaemonSet资源对象会在每个节点上都运行且只能运行一个pod。
//由于每个节点都需要监控,所以用到了DaemonSet这种资源对象

2、访问测试

//访问群集的映射端口30123

//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、下载prometheus所需文件

//github上搜索prometheus,获取到git下载链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//安装git命令
[root@docker-k8s01 ~]# yum -y install git
//创建目录(可忽略)
[root@docker-k8s01 ~]# mkdir prometheus
[root@docker-k8s01 ~]# cd prometheus/
//克隆github库
[root@docker-k8s01 prometheus]# git clone https://github.com/imirsh/kube-prometheus.git
//进入到克隆目录
[root@docker-k8s01 prometheus]# cd kube-prometheus/manifests/

2、修改各个组件Service的yaml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//修改grafana的yaml文件
[root@docker-k8s01 manifests]# cat grafana-service.yaml 

apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort    //改为NodePort类型
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30333    //映射端口为30333
  selector:
    app: grafana
//修改prometheus的yaml文件
[root@docker-k8s01 manifests]# cat prometheus-service.yaml 

apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort    //类型为NodePort
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30444    //映射端口为30444
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP
//修改alertmanager的yaml文件
[root@docker-k8s01 manifests]# cat alertmanager-service.yaml 

apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort       //类型为NodePort
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 30555    //映射端口为30555
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP

3、执行yaml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//确定当前路径
[root@docker-k8s01 manifests]# pwd
/root/prometheus/kube-prometheus/manifests
//执行setup目录下的所有yaml文件,记住是所有!
[root@docker-k8s01 manifests]# kubectl apply -f setup/
//建议多执行几次,因为目录下的yaml文件太多,可能执行的时候可能会落下一两个没有执行
[root@docker-k8s01 manifests]# cd ..      //返回上级目录
[root@docker-k8s01 kube-prometheus]# pwd
/root/prometheus/kube-prometheus
//执行该目录下的所有yaml
[root@docker-k8s01 kube-prometheus]# kubectl apply -f manifests/
//确保所有pod都正常运行
[root@docker-k8s01 kube-prometheus]# kubectl get pod -n monitoring -w

当执行以下yaml文件时,每个节点会在互联网上下载很多镜像,为了防止下载镜像的时间过长,可以先将镜像下载到本地,然后导入至各个节点,然后在执行yaml文件,将会省些时间。

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

//添加模板

//依次点击“import”进行导入下面三个模板

当然,也可以到grafana网站寻找合适的模板进行下载,这里我就不详细介绍怎么添加模板了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
风云再起,7迹由你-WP7技术沙龙上海站手记
        这次活动算是我第一次作为讲师的身份来参加的,地点在上海虹桥路3号港汇中心二座10F,微软在上海的一个分舵。幸好地点离上海虹桥这个大枢纽不远,10号线40分钟就到。活动是下午1点半开始,
ShiJiong
2018/01/10
8610
风云再起,7迹由你-WP7技术沙龙上海站手记
WP7 手机软件纪念 - 稍后读软件
在本月换机之际,决定写篇博客纪念一下我在 WP7 手机上开发的一个稍后读软件。这个工具开发完成后,两年间,我的 WP7 手机 80% 的用途,都发挥在了它身上。 这个软件其实是一个离线阅读工具,非常类似于 ReadItLater,做了一些个人的定制功能。当时只是因为 WP7 系统上没有好用的此类软件,所以只得自己开发。 软件包含手机端和 Web 端,Web 端使用了 ExtJs 来搭建(那会儿正尝试学习 ExtJs4),提供了快捷按钮,可以拖拽到浏览器上随时保存想要的网页。以下是这个工具的截图: 手机端:
用户1172223
2018/01/29
1K0
WP7 手机软件纪念 - 稍后读软件
WP7深入预览
微软寄予厚望的新一代智能系统WP7,是否能够挽回windows手机的市场份额?是否如预期的那样,能够被用户接受,答案尽在今年底。毫无疑问,微软在WP7中加入了更多的娱乐和社会化元素,用户界面全面重新设计,使用了大量的2D色块以及文本。你可以在各个标签之间进行滑动操作,也就是微软所谓的全景UI。
reizhi
2022/09/26
4240
豆瓣电台WP7客户端 MVVM重构记录之-总结
     经过几个晚上时间的奋斗,dbfm7的MVVM改造之旅终于告一段落。从对MVVM的无知到现在对它的半只半解,这个过程还是学到了很多。
MJ.Zhou
2022/05/07
4660
豆瓣电台 for WP7 客户端开源
前一阶段有空开发了个WP7的豆瓣电台应用,最近因为家里的种种琐事没有空继续完善。这些天看到信息中心有几条索要源码的留言,为了大家一起来学习WP7,现在我将这个项目开源出来。
MJ.Zhou
2022/05/07
4640
豆瓣电台 for WP7 客户端开源
豆瓣电台WP7客户端 开发记录1
 经过:简单的分析了豆瓣FM的web页面抓了下HTTP请求,2个晚上的奋战,基本功能已经实现。频道切换特效使用pivot控件。专辑封面倒影效果。切换歌曲,专辑封面从右边飞入效果。
MJ.Zhou
2022/05/07
3380
豆瓣电台WP7客户端 开发记录1
人人网 Windows Phone 7 应用开发起步
        目前,人人网在国内高校学生中的普及率非常高。前段时间,大概是11月下旬的样子,人人网发布了Windows Phone 7客户端的公测版。我想,Windows Phone 7本地化的优劣,直接关系到其将来在国内的市场份额。而诸如人人等针对学生群体的SNS应用,也将影响到高校学生对WP7平台的认可程度。人人的WP7公测版大家可以去网站上下载,如果没有WP7设备,也可以通过SDK中的Application Deployment工具部署到模拟器上进行试用。这里给出WP7平台开发人人应用的相关流程。
ShiJiong
2018/01/10
6730
人人网 Windows Phone 7 应用开发起步
Rhodium和Topaz也将获得android直刷
曾经为HTC HD2开发android的NAND引导的DFT团队日前给我们带来了又一则好消息,在大家的呼声之下,他们将为Rhodium(Touch Pro 2)和Topaz(Touch Diamond 2)开发android的NAND引导,即android直刷。 MAGLDR并没有替换设备中原有的SPL,只是允许用户在需要的时候自由返回原机配置。这就极大的减小了因引导加载了自定义系统而带来可能造成无法启动或者说变砖的风险。
reizhi
2022/09/26
3290
Rhodium和Topaz也将获得android直刷
wp15-1-23
               电容屏(碰的时候,引发电容的变化,更灵活。缺点,对屏幕的要求更高,大一些)
2018/09/03
6120
wp15-1-23
转贴-WP7开发资源大收集
文章作者: jason huang 文章标签: Microsoft, Windows Phone 7, WP7 转贴链接: WP7开发资源大收集 这里收集了大量的WP7应用开发文档和软件资源,相信对开发者会有很大的帮助。先上应用Hub的链接,以便查找官方资源: Education Resources Catalog (samples, articles) Support and Feedback (support choices) Roadmap (APIs, technology, bes
ShiJiong
2018/01/10
9710
用JavaScript+html来开发win8 app—Hello World
在win8+vs2012环境下面,我们除了能用C#,C++来开发win8的app,还可以用js+html直接开发win8的app。这确实是个很神奇的事情。今天体验了一下~
MJ.Zhou
2022/05/07
7550
用JavaScript+html来开发win8 app—Hello World
自学WP7第一个例子:时钟
自学WP7做的第一个程序:时钟 做的很山寨,没用素材 用TextBlock做的表盘和指针,放在一个Canvas上 RotateTransform类来控制偏移角度 MainPage.xaml <phone:PhoneApplicationPage x:Class="Clock.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micro
Porschev
2018/01/16
4750
自学WP7第一个例子:时钟
豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现Event绑定
这次实现了MVVM Light事件的绑定。MVVM Light为事件绑定提供了很好的支持,它有很多种方式可以实现。对于支持Command的事件比如Button的Click事件那么最简单可以直接绑定Command。对于不支持Command的事件比如TextChanged可以使用InvokeCommandAction或者EventToCommand来绑定。这里我就不展开了,因为自己也是一知半解,以免误导看客。这次我演示使用EventToCommand来绑定HubTile的Tap事件。
MJ.Zhou
2022/05/07
7610
android 模拟器安装二三事
今天在测试一个手机版网站时,发现“微软的wp7”跟“苹果的iOS”对于<select>..</select>元素的触摸操作不太一样,wp7是全屏切换到一个上下滚动的列表选择区,而iOS则是只在屏幕下半部分出现上下滚动的列表选择区,于是想到android上会不会另一番景象?遂down了下android sdk(参考文章:http://www.iplaysoft.com/android-emulator.html) 但是参照那篇文章中的安装时,发现一些新问题,记录于此 1、第一次打开,出现SSL错误信息,大意是
菩提树下的杨过
2018/01/23
1.1K0
android 模拟器安装二三事
c++sscanf函数_c语言字符串常用函数
在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。
全栈程序员站长
2022/11/17
7630
豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现数据绑定
最近面试多次被问及MVVM,虽然看过园子里的教程,毕竟未实际实现过,都回答“只了解,未实践过”。今天终于逼自己去用MVVM重构下这个应用。
MJ.Zhou
2022/05/07
8140
豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现数据绑定
将WindowsPhoneApp部署到HTC Surround,兄弟们支个招如何进行Debug
我的HTC Surround是越狱的DFT 7713版本,所以部署到真机上比较简单 ,如果你的WindowsPhone没有越狱, 具体的流程可以参照这篇帖子,地址如下:http://www.wpxap.com/thread-5359-1-1.html 。 VisualStudio2010连接Windows phone 7 完成解锁后,就可以将wp7连接至电脑了,我们打开vs2010,打开一个最简单的Helloword项目,选择windows phone 7 device,开始Debug,出现下面的错误提示,
张善友
2018/01/30
6680
将WindowsPhoneApp部署到HTC Surround,兄弟们支个招如何进行Debug
图文解说三星focus i917芒果升级
    去年就开始关注WP7,但基本都是在模拟器上。最近看芒果即将面世,Hold不住,淘宝上入手了focus的冲新机。特意要的7004英文原版,那是为了方便地通过推送来升级。配件什么的不咋地,但是机子
ShiJiong
2018/01/10
5970
图文解说三星focus i917芒果升级
Windows Phone Developer Tools 7.1 Beta 新特性--使用Additional Tools
    5月24号晚上兴奋地等待,在浏览器缓冲了近30分钟后,我终于看到了芒果更新的Webcast,虽然只是看了一个结尾。第二天通过小指的围脖收到风声,芒果更新对应的开发工具终于发布了,虽然还是Beta版本的,这对于广大的WP7爱好者来说,不能不说是一种精神上的慰藉。 1.Windows Phone Developer Tools 7.1 Beta的安装     很多朋友在看到新的开发工具发布以后,想必都迫不及待地想要尝试一下,这就涉及到新开发工具的安装问题。这个问题Alexis已经在博文《升级Window
ShiJiong
2018/01/10
8350
Windows Phone Developer Tools 7.1 Beta 新特性--使用Additional Tools
在win2008 r2中安装windows phone 7开发工具
默认情况下,windows phone7开发工具只能在windows7上安装,我的本本上好不容易把win2008 r2以及相关软件安装好,总不能因为这个又把win7装回去吧,百度了一下,还真有人研究这
菩提树下的杨过
2018/01/22
9690
推荐阅读
相关推荐
风云再起,7迹由你-WP7技术沙龙上海站手记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验