博文大纲: 1、部署dashboard的Web-UI界面 2、部署weave-scope监控k8s集群 3、部署Prometheus服务
一、下载yaml文件配置并执行node
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml [root@master ~]# vim recommended.yaml +39 //定位到39行,修改其提供的service资源 --- 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: 31001 //映射到宿主机的端口为31001 selector: k8s-app: kubernetes-dashboard //修改完保存退出便可 [root@master ~]# kubectl apply -f recommended.yaml //执行yaml文件 [root@master ~]# kubectl get pod -n kubernetes-dashboard //确认其正常运行 NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-76679bc5b9-nzcl9 1/1 Running 0 55s kubernetes-dashboard-65bb64d6cb-n95bf 1/1 Running 0 55s [root@master ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.107.61.31 <none> 8000/TCP 92s kubernetes-dashboard NodePort 10.107.129.197 <none> 443:31001/TCP 92s //查看service资源,也属正常状态,而且已经映射了咱们指定的端口
二、客户端经过浏览器访问
注:该版本以前的dashboard,必须使用火狐浏览器才可访问,多是版本更新解决了这一问题,因此本次版本没有什么硬性的要求。
方法一:使用Token的方式登陆git
[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 //将建立的dashboard用户绑定为管理用户 [root@master ~]# kubectl get secrets -n kube-system | grep dashboard dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 12s //获取刚刚建立的用户对应的token名称 [root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-h7w7r //查看token的详细信息
注:出现以上页面表示部署成功,而且监控到了各个节点的信息!!!github
方法二:使用kubeconfig的方式登陆web
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard //查看刚才建立的token dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 13m [root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-h7w7r //查看token的详细信息,会获取token [root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-h7w7r -o jsonpath={.data.token} | base64 -d) //将token的信息生成一个变量 [root@master ~]# kubectl config set-cluster kubernets --server=192.168.45.129:6443 --kubeconfig=/root/.dashboard-admin.conf //将k8s集群的配置信息写入到一个文件中,文件可自定义 [root@master ~]# kubectl config set-credentials dashboard-admin --token=${DASH_TOKEN} --kubeconfig=/root/.dashboard-admin.conf //将token的信息也写入到文件中(同一个文件) [root@master ~]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf //将用户信息也写入文件中(同一个文件) [root@master ~]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf //将上下文的配置信息也写入文件中(同一个文件) [root@master ~]# sz /root/.dashboard-admin.conf //最后将配置信息导入到客户端本地
注:以上关于dashboard简单就介绍到这了!!!json
一、github搜索“scope”,而后点击以下:vim
[root@master ~]# wget https://cloud.weave.works/k8s/scope.yaml //将得到的连接下载 [root@master ~]# vim scope.yaml +212 //编辑yaml文件 //定位到212行,更改service类型为NodePort,并指定端口 spec: type: NodePort //修改类型为NodePort ports: - name: app port: 80 protocol: TCP targetPort: 4040 nodePort: 31002 //映射到宿主的端口为31002 [root@master ~]# kubectl apply -f scope.yaml //执行yaml文件 [root@master ~]# kubectl get pod -n weave //查看容器的运行状况,肯定处于正常运行 NAME READY STATUS RESTARTS AGE weave-scope-agent-s66hp 1/1 Running 0 112s weave-scope-agent-vjn75 1/1 Running 0 112s weave-scope-agent-wzt8z 1/1 Running 0 112s weave-scope-app-b965dccb7-l5bgp 1/1 Running 0 112s weave-scope-cluster-agent-6598584d8-jhc5b 1/1 Running 0 112s [root@master ~]# kubectl get svc -n weave //查看常见的svc资源对应的端口信息 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE weave-scope-app NodePort 10.96.65.55 <none> 80:31002/TCP 2m38s
注:以上关于weave-scope简单就介绍到这了!!!api
在部署以前,先来了解一下Prometheus各个组件的做用以下: * MertricServer:是k8s集群资源使用状况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler * PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据; * NodeExporter:用于各node的关键度量指标状态数据; * kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则; * Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,经过http协议传输; * Grafana:是可视化数据统计和监控平台。
一、删除前两个监控平台,要不太消耗系统资源以下:浏览器
[root@master ~]# kubectl delete -f scope.yaml [root@master ~]# kubectl delete -f kubernetes-dashboard.yaml
二、获取yaml文件修改并执行markdown
[root@master ~]# yum -y install git //安装git命令 [root@master ~]# git clone https://github.com/imirsh/kube-prometheus.git //将项目克隆到本地 //下载过程当中较慢请耐心等待!!!!!!!!! [root@master ~]# cd kube-prometheus/manifests/ [root@master manifests]# vim grafana-service.yaml //更改grafana资源对应的service资源的类型及映射的端口 apiVersion: v1 kind: Service metadata: labels: app: grafana name: grafana namespace: monitoring spec: type: NodePort //添加类型为NodePort ports: - name: http port: 3000 targetPort: http nodePort: 31010 //自定义映射的端口 selector: app: grafana [root@master manifests]# vim alertmanager-service.yaml //更改alertmanager资源对应的service资源的类型及映射的端口 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: 31020 //自定义映射的端口 selector: alertmanager: main app: alertmanager sessionAffinity: ClientIP [root@master manifests]# vim prometheus-service.yaml //更改prometheus资源对应的service资源的类型及映射的端口 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: 31030 //自定义映射的端口 selector: app: prometheus prometheus: k8s sessionAffinity: ClientIP [root@master manifests]# pwd //确认当前所在目录 /root/kube-prometheus/manifests [root@master manifests]# kubectl apply -f setup/ //必须先执行setup目录下的全部yaml文件 [root@master manifests]# cd .. //返回上层目录 [root@master kube-prometheus]# pwd //确认目录位置 /root/kube-prometheus [root@master kube-prometheus]# kubectl apply -f manifests //将该目录下的yaml文件所有执行 [root@master kube-prometheus]# kubectl get pod -n monitoring //确保该名称空间下的全部Pod都是Running状态 //若是是选择在线下载镜像,那么可能要半个小时左右才能够正常运行 [root@master kube-prometheus]# kubectl get svc -n monitoring | grep grafana grafana NodePort 10.97.206.97 <none> 3000:31010/TCP 12m //查看grafana资源对应的service资源映射的端口
三、客户端访问群集中任意节点的IP+31010端口,便可看到如下界面(默认用户名和密码都是admin):session
本地自带的模板有点low,能够自行导入好看的模板以下: