kubernetes视频教程笔记 (36)-部署 prometheus granfana
相关地址信息
Prometheus github 地址:https://github.com/coreos/kube-prometheus
一、组件说明
1.MetricServer:
是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如kubectl,hpa,scheduler等。
2.PrometheusOperator:
是一个系统监测和警报工具箱,用来存储监控数据。
3.NodeExporter:
用于各node的关键度量指标状态数据。
4.KubeStateMetrics:
收集kubernetes集群内资源对象数据,制定告警规则。
5.Prometheus:
采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输。
6.Grafana:
是可视化数据统计和监控平台。
二、构建记录
1. 下载
git clone https://github.com/coreos/kube-prometheus.git
cd /root/kube-prometheus/manifests
2. 修改 grafana-service.yaml 文件,使用 nodepode 方式访问 grafana:
vim grafana-service.yaml
apiVersion: v1
kind: Service
metadata:name: grafananamespace: monitoring
spec:type: NodePort #添加内容ports:- name: httpport: 3000targetPort: httpnodePort: 30100 #添加内容selector:app: grafana
3. 修改 prometheus-service.yaml,改为 nodepode
vim prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:labels:prometheus: k8sname: prometheus-k8snamespace: monitoring
spec:type: NodePortports:- name: webport: 9090targetPort: webnodePort: 30200selector:app: prometheusprometheus: k8s
4. 修改 alertmanager-service.yaml,改为 nodepode
vim alertmanager-service.yaml
apiVersion: v1
kind: Service
metadata:labels:alertmanager: mainname: alertmanager-mainnamespace: monitoring
spec:type: NodePortports:- name: webport: 9093targetPort: webnodePort: 30300selector:alertmanager: mainapp: alertmanager
多运行几次,因为需要互相链接
三、Horizontal Pod Autoscaling
Horizontal Pod Autoscaling 可以根据 CPU 利用率自动伸缩一个 Replication Controller、Deployment 或者Replica Set 中的 Pod 数量
kubectl run php-apache --image=gcr.io/google_containers/hpa-example --requests=cpu=200m --expose --port=80
创建 HPA 控制器 - 相关算法的详情请参阅这篇文档
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
关闭压测
增加负载,查看负载节点数目
$ kubectl run -i --tty load-generator --image=busybox /bin/sh
$ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
四、资源限制 - Pod
Kubernetes 对资源的限制实际上是通过 cgroup 来控制的,cgroup 是容器的一组用来控制内核如何运行进程的相关属性集合。针对内存、CPU 和各种设备都有对应的 cgroup
默认情况下,Pod 运行没有 CPU 和内存的限额。 这意味着系统中的任何 Pod 将能够像执行该 Pod 所在的节点一样,消耗足够多的 CPU 和内存 。一般会针对某些应用的 pod 资源进行资源限制,这个资源限制是通过resources 的 requests 和 limits 来实现
spec:containers:- image: xxxximagePullPolicy: Alwaysname: authports:- containerPort: 8080protocol: TCPresources:limits:cpu: "4"memory: 2Girequests:cpu: 250mmemory: 250Mi
requests 要分分配的资源,limits 为最高请求的资源值。可以简单理解为初始值和最大值
五、资源限制 - 名称空间
Ⅰ、计算资源配额
apiVersion: v1
kind: ResourceQuota
metadata:name: compute-resourcesnamespace: spark-cluster
spec:hard:pods: "20"requests.cpu: "20"requests.memory: 100Gilimits.cpu: "40"limits.memory: 200Gi
Ⅱ、配置对象数量配额限制
apiVersion: v1
kind: ResourceQuota
metadata:name: object-countsnamespace: spark-cluster
spec:hard:configmaps: "10"persistentvolumeclaims: "4"replicationcontrollers: "20"secrets: "10"services: "10"services.loadbalancers: "2"
Ⅲ、配置 CPU 和 内存 LimitRange
apiVersion: v1
kind: LimitRange
metadata:name: mem-limit-range
spec:limits:- default:memory: 50Gicpu: 5defaultRequest:memory: 1Gicpu: 1type: Container
default 即 limit 的值
defaultRequest 即 request 的值
六、访问 prometheus
1. prometheus 对应的 nodeport 端口为 30200,访问 http://MasterIP:30200
通过访问 http://MasterIP:30200/target 可以看到 prometheus 已经成功连接上了 k8s 的 apiserver
查看 service-discovery
Prometheus 自己的指标
prometheus 的 WEB 界面上提供了基本的查询 K8S 集群中每个 POD 的 CPU 使用情况,查询条件如下:
sum by (pod_name)( rate(container_cpu_usage_seconds_total{image!="", pod_name!=""}[1m] ) )
上述的查询有出现数据,说明 node-exporter 往 prometheus 中写入数据正常,接下来我们就可以部署grafana 组件,实现更友好的 webui 展示数据了
七、访问 grafana
查看 grafana 服务暴露的端口号:
kubectl get service -n monitoring | grep grafanagrafana NodePort 10.107.56.143 <none> 3000:30100/TCP 20h
如上可以看到 grafana 的端口号是 30100,浏览器访问 http://MasterIP:30100 用户名密码默认 admin/admin
修改密码并登陆
添加数据源 grafana 默认已经添加了 Prometheus 数据源,grafana 支持多种时序数据源,每种数据源都有各自的查询编辑器
Prometheus 数据源的相关参数:
目前官方支持了如下几种数据源:
内容来自https://study.163.com/course/courseMain.htm?courseId=1209568805
kubernetes视频教程笔记 (36)-部署 prometheus granfana相关推荐
- Kubernetes部署Prometheus operator
部署Prometheus 我们使用kube-prometheus 在K8S中部署Prometheus ,我们直接使用开源的 mainfest 文件即可.我们创建单独的 namespace 进行监控 a ...
- k8s学习笔记- 部署prometheus
1.Prometheus概述 Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包.从2012年开始,许多公司和组织开始使用Prometheus. 该项目的开发人员和用户社 ...
- kubernetes部署Prometheus
文章目录 准备工作 整一个PV来存放TSDB数据 部署Prometheus 准备工作 开始部署Prometheus 部署Grafana 准备工作 开始部署Grafana 部署Ingress,通过Ing ...
- kubernetes学习笔记之七: Ingress-nginx 部署使用
一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供 ...
- kubernetes学习笔记之七:Ingress-nginx部署使用
一.Ingress简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的,为了使外部的应用能够访问集群的服务,在Kubernetes目前提供了以下几 ...
- 运维实操——kubernetes(十九)k8s中部署Prometheus、监控nginx、HPA自动伸缩
k8s中部署Prometheus.监控nginx.HPA自动伸缩 1.什么是Prometheus? 2.k8s中部署Prometheus监控 3.prometheus监控nginx 4.基于prome ...
- Kubernetes(k8s)之在集群环境部署Prometheus(普罗米修斯监控)和集群的ui管理工具Grafana
Prometheus Prometheus 演示环境 部署Prometheus和Grafana 测试 Prometheus Prometheus是一个开源系统监控和警报工具包. 现在是一个独立的开源项 ...
- k8s实战之部署Prometheus+Grafana可视化监控告警平台
写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...
- 万字好文!Docker环境部署Prometheus+Grafana监控系统
点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 It doesn't matter how slow you ar ...
- Kubernetes学习笔记
Kubernetes学习笔记 1.简介 用于自动部署.扩缩和管理容器化应用程序的开源系统,支持自动化部署.大规模可伸缩. 2.架构 2.1.Control Plane 对集群做出全局决策 Contro ...
最新文章
- 去百度,还是去创新工厂
- python中e-r图_E-R图基本步骤
- 多多自走棋改动_多多自走棋腾讯版
- vue node --- 前后端联系的知识梳理
- excel函数中if android,在Android中阅读Excel
- ssm整合,使用maven分模块
- 二叉树前序中序后续线索树_二叉树的先序,中序,后序遍历以及线索二叉树的遍历...
- django-登陆案例-分析篇1909
- 单条知识:什么是平面束方程
- Vue 项目中各种痛点问题及方案(建议收藏)
- OpenCV色彩空间类型
- 机器学习之网格搜索调参sklearn
- python 自动点赞_python实现在有漏洞的网站实现自动注册、登录、点赞
- pfx证书解析公钥私钥
- tomcat同时部署两个项目的问题
- Themida/WinLicense.V1.8.2.0 的Anit OllyDBG新方法
- word文档如何停止限制编辑
- Servlet过滤器,Servlet过滤器创建和配置
- 2020年chx的计算机保研之路系列(7)——清华软院+北大软微(均被拒)
- 开源项目总结帖(整理自Trinea的github)
热门文章
- 管理例程——数据库管理员
- 三次握手与accept()函数
- 使用java6做webservice 的客户端
- ubuntu自带截图工具
- 初识python之django创建工程
- valgrind- 内存泄漏-how to install and use
- RedHat 6.4源码方式安装mysql5.5
- Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
- 计数器控制的while循环(C++/python版)
- 删除和修改nbsp;预留nbsp;:BAPI_RESERVATI…