之前有写过对于传统项目的性能测试监控,但是对于目前市场占比已经很低,大部分项目使用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/1vnUcoEVBy3hQVdpwyqjs6w
提取码:qawq

对于k8s微服务的性能测试监控平台搭建的更多相关文章

  1. 【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

    前言 在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率.但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载 ...

  2. 【性能测试实战】jmeter + k8s + 微服务 + skywalking + efk,测试都在学的热门技术

    原文持续更新完善:https://www.cnblogs.com/uncleyong/p/15475614.html 前言:当前的热门主流技术是哪些?测开为啥那么火?90%以上的测试对测开认识不准确 ...

  3. 【性能测试实战:jmeter+k8s+微服务+skywalking+efk】系列之:性能监控、分析、调优等

    说明: 本文是基于虚拟机演示的,资源有限 skywalking中拓扑图 kubectl get po -A -owide 测试执行:单场景 查询礼品 jmeter -n -t gift.jmx -l ...

  4. 【性能测试实战:jmeter+k8s+微服务+skywalking+efk】系列之:性能测试场景设计

    说明: 本文是基于虚拟机环境配置设计的 性能测试需求 总tps≥100 每个业务的rt<500ms 持续稳定跑50万业务量 单场景 目的:找到单场景的性能问题,为容量场景提供参考,如果低于容量场 ...

  5. 微服务低代码Serverless平台(星链)的应用实践

    导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性.场景化.定制化等难度不太高.但比较繁琐的需求,如服务前端的后端(BFF).服务流程编排.异步消息 ...

  6. 深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台

    深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台 大家好,欢迎大家参加这次DC/OS的技术分享. 先做个自我介绍,刘超,Linker Networks首席架构师,Open DC/OS社区 ...

  7. 跟我学SpringCloud | 第十五篇:微服务利剑之APM平台(一)Skywalking

    目录 SpringCloud系列教程 | 第十五篇:微服务利剑之APM平台(一)Skywalking 1. Skywalking概述 2. Skywalking主要功能 3. Skywalking主要 ...

  8. ServiceStage-华为微服务开发与管理平台

    前言 在上一篇文章一年前,我来到国企搞IT 中,和小伙伴分享了我在国企这一年当中的所见,所闻,所想,很高兴能够获得很多同道中人的共鸣.过去一年,我的很大一部分工作都投入到公司技术平台的建设中.Jira ...

  9. 性能测试监控平台:InfluxDB+Grafana+Jmeter

    前面的博客介绍了InfluxDB.Telegraf.Grafana的安装和使用方法,这篇博客,介绍下如何利用这些开源工具搭建性能测试监控平台... 前言 性能测试工具jmeter自带的监视器对性能测试 ...

随机推荐

  1. windows安装程序无法将windows配置为在此计算机上运行

    ----------------------------------------------- 解决办法: 当出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\windows\s ...

  2. 学习笔记:四边形不等式优化 DP

    定义 & 等价形式 四边形不等式是定义在整数集上的二元函数 \(w(x, y)\). 定义:对于任意 \(a \le b \le c \le d\),满足交叉小于等于包含(即 \(w(a, c ...

  3. basic english

    color/visual see look color dark light beautiful shade black blue brown clear gray green orange red ...

  4. 题解-Reachable Strings

    题解-Reachable Strings 前置知识: \(\texttt{Hash}\) Reachable Strings 给一个长度为 \(n\) 的 \(\texttt{01}\) 串 \(s\ ...

  5. java多线程之消费生产模型-使用synchronized解决虚假唤醒

    package com.wenshao.juc; /** * 生产者和消费者案例 * * @author Administrator * */ public class TestProductorAn ...

  6. 教你30秒解开手机的密码 适用于高通CPU

    教程简介 先将手机进入9008模式.进入方法请自己百度. 进入9008方法如下:   先将手机关机,然后按住音量加和音量减不松手. 使用教程: 将数据线拆入电脑.会出现一个端口   出现端口后可以松开 ...

  7. Python使用requests发送请求

    Python使用第三方包requests发送请求,实现接口自动化 发送请求分三步: 1.组装请求:包括请求地址.请求头header.cookies.请求数据等 2.发送请求,获取响应:支持get.po ...

  8. 自顶向下redis4.0(1)启动

    redis4.0的启动流程 目录 redis4.0的启动流程 简介 正文 全局server对象 初始化配置 初始化服务器 事件主循环 参考文献 简介 redis 在接收客户端连接之前,大概做了以下几件 ...

  9. CAP、BASE、ACID

    CAP定理 定义 CAP定理(CAP theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consistency) (等同于所有节点访问同一份最新的数据副本:写操作之 ...

  10. 工具-Redis-django存储session(99.6.4)

    @ 目录 1.说明 安装 修改设置 2.测试 关于作者 1.说明 之前django的session默认是存在的数据库里面的,我们也可以把session存储在redis里面 安装 pip install ...