zoukankan      html  css  js  c++  java
  • 对于k8s微服务的性能测试监控平台搭建

    之前有写过对于传统项目的性能测试监控,但是对于目前市场占比已经很低,大部分项目使用k8s,今天讲一下对于k8s如何去监控。

    对于k8s的监控我们所有的操作都要在master下进行。

    一、部署grafana

    作者会提供一个grafana的yaml文件,对于文件进行适配项目的修改即可

    1、修改配置文件

     spec:
          containers:
          - name: grafana
        #镜像版本号 image: grafana/grafana:7.2.1 ports: - containerPort: 3000 env: - name: GF_SECURITY_ADMIN_USER
          # 登录账号 value: admin - name: GF_SECURITY_ADMIN_PASSWORD
          #登录密码 value: admin123 volumeMounts: - mountPath: /var/lib/grafana/abc name: storage volumes: - name: storage nfs:
          #master的 ipv4地址 server: 192.0.0.1 path: /root/nfs-share

    2、部署grafana

    创建garafana pod

    kubectl create -f /root/k8s/node_exporter.yaml

    二、部署mysql_exporter

    由于mysql_exporter是对mysql数据库进行监控,我们需要把mysql_exporter和mysql数据库打包在一个pod中,所以要对项目原有的mysql yaml文件进行update

          - name: mysql-exporter
            env:
            - name: DATA_SOURCE_NAME
          # 数据库账号:密码@(地址:端口) value: root:123@(127.0.0.1:3306)/ image: prom/mysqld-exporter imagePullPolicy: Always name: mysql-exporter ports: - containerPort: 9104 protocol: TCP volumes: - name: mysql-data nfs:
          #修改为master的ipv4地址 server: 192.168.19.133 path: /root/nfs-share --- apiVersion: v1 kind: Service metadata: name: mysql labels: name: mysql spec: type: NodePort ports: - port: 3306 nodePort: 30306 targetPort: 3306 name: mysql - port: 9104 protocol: TCP targetPort: 9104 nodePort: 30304 name: mysql-exporter selector: name: mysql

    上面的为新增内容(有部分会与当前已有的重复),新增后重建pod。

    如果有多个节点请在replicas : 后面增加节点数

    三、部署node_exporter

    apiVersion: apps/v1
    # DaemonSet 方式会在所有绑定master的节点下安装 kind: DaemonSet metadata: name: node-exporter namespace: kube-system labels: k8s-app: node-exporter spec: selector: matchLabels: k8s-app: node-exporter template: metadata: labels: k8s-app: node-exporter spec: containers: - image: prom/node-exporter name: node-exporter ports: - containerPort: 9100 protocol: TCP name: http --- apiVersion: v1 kind: Service metadata: labels: k8s-app: node-exporter name: node-exporter namespace: kube-system spec: ports: - name: http port: 9100 nodePort: 31672 protocol: TCP type: NodePort selector: k8s-app: node-exporter

    创建node_exporter pod:

    kubectl create -f /root/k8s/node_exporter.yaml

    四、部署Prometheus

    1.修改configmap.yaml文件

        - job_name: k8s-nodes
          static_configs:
          - targets:
    - 192.168.1.180:31672
         # master 节点ip - 192.168.1.181:31672
    # node1 节点ip - 192.168.1.182:31672
    # node2 节点ip - job_name: mysql static_configs: - targets: - 192.168.1.180:30304
         # master 节点ip

    2.访问prometheus,http://ip:30003/targets

    3.访问grafana并配置http://ip:31000/login,用户名和密码为创建pod时设置的账号密码。

    4.配置Prometheus数据源 http://ip:30003 

      30003端口是在配置文件prometheus.svc.yml中配置

    导入模板后的效果给大家看一下:

     五、新增节点监控操作

    如果集群中新增一个节点,此时我们的监控已经完成,我们应该如何去操作

    1.当一个新的节点新增到集群中,node_exporter会自动在新的节点下创建一个pod,所以这里不需要额外操作

    2.需要对Prometheus的配置文件进行uodate:

      修改配置文件configmap.yaml:

        - job_name: k8s-nodes
          static_configs:
          - targets:
            - 192.168.1.180:31672
            - 192.168.1.181:31672
            - 192.168.1.182:31672
            # 增加新的节点地址
            - 192.168.1.183:31672

      然后执行下面的操作:

    kubectl replace -f configmap.yaml #替换配置文件
    kubectl delete -f prometheus.deploy.yml#删除服务
    kubectl create -f prometheus.deploy.yml #重建服务

    此时,新的节点监控添加完成

    文章中提到的所有yaml文件分享在下面地址中,可以自行下载,如果需要监控模板可以发送私信索要,如果还不清楚如何导入模板可以查看历史随笔。

    链接:https://pan.baidu.com/s/17wV1m1fQK8oA4R92bPDeqg
    提取码:1jbk



  • 相关阅读:
    基于日志实现ssh服务防护脚本
    给多主机传输文件脚本
    Python map() 函数
    常用希腊字母读法
    Python中Numpy.nonzero()函数
    numpy.eye() 生成对角矩阵
    (sklearn)岭回归 sklearn.linear_model.Ridge用法
    pip配置永久国内源
    python numpy的var std cov研究
    numpy中的mean()函数
  • 原文地址:https://www.cnblogs.com/congyiwei/p/14272703.html
Copyright © 2011-2022 走看看