• k8s+Prometheus+Grafana的监控部署


    一、安装部署k8s集群

    可以参考https://www.cnblogs.com/liugp/p/12115945.html

    二、Prometheus+Grafana的监控部署

    2.1、master/node节点环境部署

    在【master可以进行安装部署
    安装git,并下载相关yaml文件

    https://gitee.com/liugpwwwroot/k8s-prometheus-grafana.git

    2.2、采用daemonset方式部署node-exporter组件

    kubectl create -f k8s-prometheus-grafana/node-exporter.yaml

    2.3、部署prometheus组件

    2.3.1、rbac文件

    kubectl create -f  k8s-prometheus-grafana/prometheus/rbac-setup.yaml

    2.3.2 以configmap的形式管理prometheus组件的配置文件

    kubectl create -f  k8s-prometheus-grafana/prometheus/configmap.yaml 

    2.3.3 Prometheus deployment 文件

    kubectl create -f  k8s-prometheus-grafana/prometheus/prometheus.deploy.yml

    2.3.4 Prometheus service文件

    kubectl create -f  k8s-prometheus-grafana/prometheus/prometheus.svc.yml 

    2.4、部署grafana组件

    2.4.1 grafana deployment配置文件

    kubectl create -f   k8s-prometheus-grafana/grafana/grafana-deploy.yaml

    2.4.2 grafana service配置文件

    kubectl create -f   k8s-prometheus-grafana/grafana/grafana-svc.yaml

    2.4.3 grafana ingress配置文件

    kubectl create -f   k8s-prometheus-grafana/grafana/grafana-ing.yaml

    2.5、查看访问相应服务

     2.5.1、访问node-exporter(上图对应的端口:31672),这个采集器只是采集宿主机上的一些指标

    2.5.2、cAdvisor:一种用于监控资源使用情况并分析容器性能的开源代理,即容器指标采集器,cAdvisor集成在Kubelet中,所有安装了k8s就自动安装了cAdvisor,cAdvisor的UI已经差不多被弃用了,Kubernetes 1.12版本之后cAdvisor的UI会被彻底删除,但是可以用granfana展示图表,还有一个问题就是默认不被外部访问,但是可以通过代理方式访问。使用代理如下:

    # 这种方式只允许宿主机上访问,也就是localost或者127.0.0.1访问
    $ kubectl proxy
    
    # 设置API server接收所有主机的请求
    $ kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$'

    示例:

    # 访问cadvisor采集的指标数据
    $ http://192.168.182.138:8001/api/v1/nodes/k8s-master/proxy/metrics/cadvisor

    2.5.3、访问prometheus(上图对应的端口:30003

     2.5.4、访问granfana,默认用户名,密码均为admin(上图对应的端口:30106

     1、添加数据源,这里使用代理模式(推荐),仅限k8s内部访问

     当然也可以使用直接访问模式

    2、导入面板:Home->Dashboards->Import

     导入面板,可以直接输入模板编号315在线导入,或者下载好对应的json模板文件本地导入,面板模板下载地址https:///dashboards/315

     稍等片刻,即可展示如下图,记得选择prometheus数据源为prometheus

     点击Import,即可查看展示效果

    三、测试

    3.1、部署测试实例

    •  部署实例
    • [root@k8s-master k8s-prometheus-grafana]# kubectl run apache --image=httpd --replicas=2
    • 查看
    • [root@k8s-master k8s-prometheus-grafana]# kubectl get deployments.apps -o wide
    • 创建svc
    • [root@k8s-master k8s-prometheus-grafana]# kubectl expose deployment apache --port=88 --target-port=80 --type=NodePort

    •  访问:http://192.168.182.138:30085/

    最后如果要删掉重置可以执行:

    # 倒叙强制删除
    kubectl delete -f k8s-prometheus-grafana/grafana/grafana-ing.yaml --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/grafana/grafana-svc.yaml --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/grafana/grafana-deploy.yaml --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/prometheus/prometheus.svc.yml  --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/prometheus/prometheus.deploy.yml  --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/prometheus/configmap.yaml  --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/prometheus/rbac-setup.yaml  --grace-period=0 --force
    
    kubectl delete -f k8s-prometheus-grafana/node-exporter.yaml  --grace-period=0 --force
    
    # 再顺序执行创建
    kubectl create -f k8s-prometheus-grafana/node-exporter.yaml
    
    kubectl create -f k8s-prometheus-grafana/prometheus/rbac-setup.yaml
    
    kubectl create -f k8s-prometheus-grafana/prometheus/configmap.yaml 
    
    kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.deploy.yml
    
    kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.svc.yml
    
    kubectl create -f k8s-prometheus-grafana/grafana/grafana-deploy.yaml
    
    kubectl create -f k8s-prometheus-grafana/grafana/grafana-svc.yaml
    
    kubectl create -f k8s-prometheus-grafana/grafana/grafana-ing.yaml

     ~~~以上就全部部署,有不清楚的,或有不足的地方,欢迎评论^_^ ~~~

  • 相关阅读:
    PowerDesigner中利用数据库表反向生成PDM(jdk必须是32位)
    Struts2 Web Project 实现中文、英语的切换
    一张图解决Struts2添加源码
    Struts2配置文件struts.xml的编辑自动提示代码功能
    Hibernate多对一(注解)
    SQL Server 日期和时间函数
    ORACLE日期时间函数大全
    ORACLE中函数MONTHS_BETWEEN的使用
    SQL经典面试题及答案
    SQL数据库面试题以及答案
  • 原文地址:https://www.cnblogs.com/liugp/p/12182351.html
Copyright © 2020-2023  润新知