k8s实践(十一):heapster+influxdb+grafana实现kubernetes集群监

环境说明:

主机名 操作系统版本 ip docker version kubelet version 配置 备注
master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主机
node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node节点
node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2 2C2G node节点

k8s集群部署详见:Centos7.6部署k8s(v1.14.2)集群
k8s学习资料详见:基本概念、kubectl命令和资料分享

一、简介

1.heapster简介

Heapster是Kubernetes原生的集群监控方案,Kubelet自身就包含了一个名为cAdvisor的agent,它会收集整个节点和节点上运行的所有单独容器的资源消耗情况。Heapster以pod的方式运行在某个节点上,它通过普通的KubernetesService暴露服务,使外部可以通过一个稳定的IP地址访问。它从集群中所有的cAdvisor收集数据,然后通过一个单独的地址暴露。

Heapster 将数据按照 Pod 进行分组,将它们存储到预先配置的 backend 并进行可视化展示。Heapster 当前支持的 backend 有 InfluxDB(通过 Grafana 展示),Google Cloud Monitoring 等。

2.lnfluxDB和Grafana 简介

lnfluxDB是一个用于存储应用指标,以及其他监控数据的开源的时序数据库。Grafana是一个拥有着华丽的web控制台的数据分析和可视化套件,同样也是开源的,它允许用户对InfluxDB中存储的数据进行可视化,同时发现应用程序的资源使用行为是如何随时间变化的。

二、heapster安装

1.安装文件和镜像下载

安装文件下载:

[[email protected] ~]# git clone https://github.com/kubernetes-retired/heapster.git

或者

[[email protected] ~]# wget https://github.com/kubernetes-retired/heapster/archive/master.zip
[[email protected] ~]# unzip master.zip 

两种方式都可以下载安装文件,本文采取第二种方式

镜像下载及打标签

[[email protected] ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4
[[email protected] ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2
[[email protected] ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4

[[email protected] ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4 k8s.gcr.io/heapster-amd64:v1.5.4
[[email protected] ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2 k8s.gcr.io/heapster-influxdb-amd64:v1.5.2
[[email protected] ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4 k8s.gcr.io/heapster-grafana-amd64:v5.0.4

[[email protected] ~]# docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4 registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2 registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4

注意每个节点都需执行以上命令

2.安装文件修改

[[email protected] ~]# cd heapster-master/deploy/kube-config/
[[email protected] kube-config]# pwd
/root/heapster-master/deploy/kube-config
[[email protected] kube-config]# ll
总用量 0
drwxr-xr-x 2 root root  27 11月 30 2018 google
drwxr-xr-x 2 root root  68 10月 22 15:00 influxdb
drwxr-xr-x 2 root root  32 10月 22 15:02 rbac
drwxr-xr-x 2 root root  38 11月 30 2018 standalone
drwxr-xr-x 2 root root 170 11月 30 2018 standalone-test
drwxr-xr-x 2 root root 145 11月 30 2018 standalone-with-apiserver
[[email protected] kube-config]# cd influxdb/
[[email protected] influxdb]# ll
总用量 12
-rw-r--r-- 1 root root 2294 10月 22 14:51 grafana.yaml
-rw-r--r-- 1 root root 1162 10月 22 15:00 heapster.yaml
-rw-r--r-- 1 root root  997 10月 22 14:51 influxdb.yaml
[[email protected] influxdb]# cd ../rbac/
[[email protected] rbac]# ll
总用量 4
-rw-r--r-- 1 root root 263 10月 22 15:02 heapster-rbac.yaml

分别修改文件grafana.yamlinfluxdb.yamlheapster.yamlheapster-rbac.yaml

修改grafana.yaml,port类型为NodePort,nodePort为30011,可通过http://NodeIp:30011方式访问

修改influxdb.yaml,port类型为NodePort,nodePort为30012,grafana配置数据源会用到

修改heapster.yaml中的source和sink参数

source: 指定数据获取源

source参数 说明
inClusterConfig 在与heapster的命名空间关联的服务帐户中使用kube config(默认值:true)
kubeletPort 指定kubelet的使用端口,默认10255
kubeletHttps 是否使用https去连接kubelets(默认:false)
insecure 是否使用安全证书(默认:false)
auth 安全认证
useServiceAccount 是否使用K8S的安全令牌(默认:false)

sink: 指定后端数据存储

sink参数 说明
user InfluxDB用户,默认root
pw InfluxDB密码,默认root
db 数据库名,默认k8s
retention 默认infloxDB保留策略的持续时间,默认值0,表示无限
secure 安全连接到InfluxDB(默认:false)
insecuressl 忽略SSL证书有效性(默认值:false)
withfields 使用InfluxDB fields(默认:false)
cluster_name 不同cubernete集群的集群名称(默认:default)
disable_counter_metrics 禁用接收计数器度量以流入数据库(默认:false)
concurrency 并发数(默认:1)

修改heapster-rbac.yaml,将权限修改为cluster-admi

3.执行安装

[[email protected] kube-config]# pwd
/root/heapster-master/deploy/kube-config
[[email protected] kube-config]# kubectl apply -f influxdb/
deployment.extensions/monitoring-grafana created
service/monitoring-grafana created
serviceaccount/heapster created
deployment.extensions/heapster created
service/heapster created
deployment.extensions/monitoring-influxdb created
service/monitoring-influxdb created
[[email protected] kube-config]# kubectl apply -f rbac/heapster-rbac.yaml
clusterrolebinding.rbac.authorization.k8s.io/heapster created

4.资源查看

[[email protected] kube-config]# kubectl get all -n kube-system -o wide |grep -e monitor -e heapster    

三、Grafana配置

1.登录grafana

登陆地址: http://172.27.9.131:30011

2.配置DataSource

url为http://172.27.9.131:30012

3.导入模板

模板下载

下载地址:https://grafana.com/api/dashboards/3649/revisions/1/download

https://grafana.com/api/dashboards/3646/revisions/1/download

导入

同理导入kubernetes-node-statistics

四、查看Grafana

五、资源删除

[[email protected] ~]# kubectl delete -n kube-system  ClusterRoleBinding heapster               [[email protected] ~]# kubectl get all -n kube-system -o wide |grep -e monitor -e heapster |awk ‘{print $1}‘|xargs kubectl delete  -n kube-system
[[email protected] ~]# rm -rf heapster-master master.zip 

本文所有配置文件已上传github:https://github.com/loong576/heapster-influxdb-grafana/archive/master.zip

原文地址:https://blog.51cto.com/3241766/2448881

时间: 2024-10-28 21:57:19

k8s实践(十一):heapster+influxdb+grafana实现kubernetes集群监的相关文章

k8s实践9:一次失败的kubernetes集群崩溃处理记录

1.莫名其妙的整个集群崩溃,所有命令无法执行,所有组件(controller-manager和scheduler两个正常)都是启动失败.各种记录和报错,参考见下: [[email protected] ~]# kubectl get cs error: the server doesn't have a resource type "cs" [[email protected] ~]# systemctl status flanneld ● flanneld.service - Fla

Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + Grafana 1.Prometheus & Grafana 介绍 Prometheus 是一套开源的系统监控.报警.时间序列数据库的组合,Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而通过 Exporter Http 接口输出这些被监控的组件信息,而且已经有很多 E

使用telegraf+influxdb+grafana监控ceph集群

telegraf是一个收集监控项的agent,有支持收集多种数据的插件比如ceph,apache,docker,haproxy,system等,同时有支持多种输出的插件比如influxdb,graphite等. influxdb是时序数据库,多用于监控场景 grafana是很棒的绘图工具 这三者的结合有三个主要过程: 1.安装在ceph集群所有节点(包括mon和osd节点)上的telegraf通过ceph_input插件收集ceph集群信息,这里踩了两个坑,ceph_input插件报了两个错,一

kubernetes 监控方案之:heapster+influxdb+grafana(十八)

目录 一.Heapster 介绍 二.部署 三.使用 heapster已经deprecated了:https://github.com/kubernetes/heapster 一.Heapster 介绍 Heapster 是容器集群监控和性能分析工具,天然的支持 Kubernetes 和 CoreOS. Kubernetes 有个出名的监控 agent-cAdvisor.在每个 kubernetes Node 上都会运行 cAdvisor,它会收集本机以及容器的监控数据 (cpu,memory,

K8S集群监控—cAdvisor+Heapster+InfluxDB+Grafana

容器的监控方案有多种,如单台docker主机的监控,可以使用docker stats或者cAdvisor web页面进行监控.但针对于Kubernetes这种容器编排工具而言docker单主机的监控已经不足以满足需求,在Kubernetes的生态圈中也诞生了一个个监控方案,如常用的dashboard,部署cAdvisor+Heapster+InfluxDB+Grafana监控方案,部署Prometheus和Grafana监控方案等.在这里主要讲述一下cAdvisor+Heapster监控方案.

阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11?核心系统 100% 以云原生的方式上云,完美支撑了?54.4w 峰值流量以及?2684 亿的成交量.背后承载海量交易的计算力就是来源于容器技术与神龙裸金属的完美融合. 集团上云机器资源形态 阿里巴巴 双11 采用三地五单元架构,除 2 个混部单元外,其他 3 个均是云单元.神龙机型经过

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

在kubernetes 集群内访问k8s API服务

所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用“rbac.authorization.k8s.io”API 组来实现授权控制,允许管理员通过Kubernetes API动态配置策略. API Server 内部通过用户认证后,然后进入授权流程.对合法用户进行授权并且随后在用户访问时进行鉴权,是权限管理的重要环节.在 kubernetes 集群中

Kubernetes集群资源监控

Kubernetes监控指标 集群监控? 节点资源利用率? 节点数? 运行Pods Pod监控? Kubernetes指标(pod) DESIRED:预期的状态CURRENT:当前的状态UP-TO-DATE:更新后的状态AVAILABLE:可以用的状态 ? 容器指标(cpu,mem)? 应用程序 Kubernetes监控方案 cAdvisor+InfluxDB+Grafana:cAdvisor(k8s自身的组件)采集的数据,Heapster会去收集数据存在InfluxDB中,Grafana对In