Kubernetes部署dashboard和Prometheus的教程-创新互联-古蔺大橙子建站
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Kubernetes部署dashboard和Prometheus的教程-创新互联

一、dashboard

1)获取yaml文件修改并执行

如图:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

创新互联建站是一家集网站建设,榆林企业网站建设,榆林品牌网站建设,网站定制,榆林网站建设报价,网络营销,网络优化,榆林网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
[root@master ~]# wget  https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
[root@master ~]# vim recommended.yaml +39
#定位到39行,修改其提供的service资源
spec:
  type: NodePort
  ports:
   - port: 443
    targetPort: 8443
    nodePort: 31001
  selector:
   k8s-app: kubernetes-dashboard
#因为默认情况下,service的类型是cluster IP,需更改为NodePort的方式,便于访问,也可映射到指定的端口
[root@master ~]# kubectl apply -f recommended.yaml 
[root@master ~]# kubectl get pod -n kubernetes-dashboard 
NAME                     READY  STATUS   RESTARTS  AGE
dashboard-metrics-scraper-7f5767668b-dd7ml  1/1   Running  0      28s
kubernetes-dashboard-57b4bcc994-vrzcp     1/1   Running  0      28s
#确保该yaml文件提供的pod均正常运行
[root@master ~]# kubectl get svc -n kubernetes-dashboard 
NAME             TYPE     CLUSTER-IP    EXTERNAL-IP  PORT(S)     AGE
dashboard-metrics-scraper  ClusterIP  10.110.63.144       8000/TCP     86s
kubernetes-dashboard     NodePort   10.111.65.9        443:31001/TCP  87s
#查看service资源,也属正常状态,并且已经映射了我们指定的端口
2)客户端访问测试

该版本之前的dashboard,必须使用火狐浏览器才可访问,本次使用的版本并没有硬性的要求。

Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

3)使用Token的方式登录
[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
#获取刚刚创建的用户对应的token名称
dashboard-admin-token-88gxw            kubernetes.io/service-account-token  3    22s
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw 
#查看token的详细信息

如图:
Kubernetes部署dashboard和Prometheus的教程
浏览器访问:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
出现该页面表示访问成功!

4)使用kubeconfig的方式登录

基于token的基础之上,进行以下操作:

[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
#查看刚才创建的token
dashboard-admin-token-88gxw            kubernetes.io/service-account-token  3    22m
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw
#查看token的详细信息,会获取token
[root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-88gxw -o jsonpath={.data.token} | base64 -d)
#将token的信息生成一个变量
[root@master ~]# kubectl config set-cluster kubernets --server=192.168.1.1: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
#最后将配置信息导入到客户端本地

浏览器访问:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
出现上述页面即表示访问成功!

关于dashboard的方式就简单介绍这么多!

二、Weave Scope

1)获取yaml文件修改并执行

如图:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

[root@master ~]# wget https://cloud.weave.works/k8s/scope.yaml
[root@master ~]# vim scope.yaml  +212
#定位到212行,更改service类型为NodePort,并指定端口
   spec:
    type: NodePort
    ports:
     - name: app
      port: 80
      protocol: TCP
      targetPort: 4040
      nodePort: 31002
[root@master ~]# kubectl apply -f scope.yaml
[root@master ~]# kubectl get pod -n weave 
#确保运行的pod均为Running状态
NAME                     READY  STATUS   RESTARTS  AGE
weave-scope-agent-7t4qc            1/1   Running  0      8m57s
weave-scope-agent-r78fz            1/1   Running  0      8m57s
weave-scope-agent-t8j66            1/1   Running  0      8m57s
weave-scope-app-78cff98cbc-cs4gs       1/1   Running  0      8m57s
weave-scope-cluster-agent-7cc889fbbf-pz6ft  1/1   Running  0      8m57s
[root@master ~]# kubectl get svc -n weave 
#查看常见的svc资源对应的端口信息
NAME        TYPE    CLUSTER-IP    EXTERNAL-IP  PORT(S)     AGE
weave-scope-app  NodePort  10.102.221.220       80:31002/TCP  11m

浏览器访问:
Kubernetes部署dashboard和Prometheus的教程

三、Prometheus

在部署Prometheus之前,由于实验环境,配置较低,所以将原本的dashboard、Scope进行删除了!

在真正部署Prometheus之前,应了解一下Prometheus的各个组件之间的关系及作用:
1)MertricServer:是k8s集群资源使用情况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler;
2)PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据;
3)NodeExporter:用于各node的关键度量指标状态数据;
4)kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则;
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输;
6)Grafana:是可视化数据统计和监控平台;

1)获取yaml文件修改并执行

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

如图:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

[root@master ~]# git clone https://github.com/coreos/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资源对应的service资源映射的端口
grafana         NodePort   10.97.56.230        3000:31010/TCP        16m

所使用的pod的镜像下载较慢,总之,网络稳定一切都不是问题!

浏览器访问:
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
本地自带的模板有点low,所以接下来导入一个好看的模板!

模板下载地址:https://grafana.com/dashboards 自行进行查看!

Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程
Kubernetes部署dashboard和Prometheus的教程

大功告成,可以看到炫酷的监控页面了。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:Kubernetes部署dashboard和Prometheus的教程-创新互联
文章来源:http://scgulin.cn/article/dcphoi.html