Kubernetes1.5 集成Heapster

Kubernetes1.5 集成Heapster

Heapster是kubernetes集群监控工具。在1.2的时候,kubernetes的监控需要在node节点上运行cAdvisor作为agent收集本机和容器的资源数据,包括cpu、内存、网络、文件系统等。在新版的kubernetes中,cAdvisor被集成到kubelet中。通过netstat可以查看到kubelet新开了一个4194的端口,这就是cAdvisor监听的端口,现在我们然后可以通过http://<node-ip>:4194的方式访问到cAdvisor。Heapster就是通过每个node上的kubelet,也就是实际的cAdvisor上收集数据并汇总,保存到后端存储中。

  Heapster支持多种后端存储,包括influxDB,Elasticsearch,Kafka等,在这篇文档里,我们使用influxDB作为后端存储来展示heapster的相关配置。需要说明的是,heapster依赖kubernetes dns配置。具体相关配置请参考另一篇博文《kubernetes 1.5配置dns》。

1、下载heapster

目前heapster的最新版本是1.2版本:

wget https://github.com/kubernetes/heapster/archive/v1.3.0-beta.1.tar.gztar xf vv1.3.0-beta.1.tar.gzcd heapster-1.3.0/deploy/kube-configcp -r influxdb /data/kubernetes/

上面的操作是下载heapster,然后将其中的influxdb目录复制到我们用于保存相关yaml文件的目录/data/kubernetes目录。其中influxdb目录中包含如下几个文件:

[[email protected] influxdb]# ll -h
total 20K
-rw-r--r--. 1 root root  414 Mar 15 18:04 grafana-service.yaml
-rw-r--r--. 1 root root  630 Mar 15 21:04 heapster-controller.yaml
-rw-r--r--. 1 root root  249 Mar 15 18:04 heapster-service.yaml
-rw-r--r--. 1 root root 1.5K Mar 15 18:17 influxdb-grafana-controller.yaml
-rw-r--r--. 1 root root  259 Mar 15 18:04 influxdb-service.yaml

我们需要修改相应几个controller文件中的image镜像的地址,还是一样,通过使用阿里云镜像地址dev.aliyun.com, registry.cn-hangzhou.aliyuncs.com/google-containers/heapster-amd64:v1.3.0-beta.1,修改完成以后,直接执行操作如下:

kubectl create -f /data/kubernetes/influxdb

这个时候,我们通过kubectl get pods --all-namespaces命令可以看到两个pod都正常启动,但我们通过dashboard却看不到相应的监控图。通过kubectl logs 查看heapster的容器日志。看到如下报错:

E0315 11:58:16.155096       1 reflector.go:205] k8s.io/heapster/metrics/heapster.go:232: Failed to list *api.Pod: Get https://kubernetes.default/api/v1/pods?resourceVersion=0: x509: certificate is valid for server-116, not kubernetes.default
E0315 11:58:16.168369       1 reflector.go:205] k8s.io/heapster/metrics/processors/namespace_based_enricher.go:84: Failed to list *api.Namespace: Get https://kubernetes.default/api/v1/namespaces?resourceVersion=0: x509: certificate is valid for server-116, not kubernetes.default

从报错可以看出,是无法连接https://kubernetes.default这个地址。我们知道kubernetes.default其实就是apiserver本身,只不过这里是使用了kubernetes的域名系统进行解析。报错是因为连接了apiserver的secure port,需要ssl认证,导致了校验异常。为了规避这种校验,我们可以使用一种取巧的办法,就是使用非insecure-port连接,即apiserver的8080端口。

我们找到heapster-controller.yaml文件,里面有关于其启动参数配置如下:

        command:
        - /heapster
        - --source=kubernetes:https://kubernetes.default
        - --sink=influxdb:http://monitoring-influxdb:8086

对两个参数做下简单说明:

--source代表heapster的数据源,即从哪里获取数据,这里当然是从apiserver拿数据

--sink代表heapster获取到的数据存储到哪里,我们这里使用了influxdb,influxdb的地址在influxdb相关的yaml文件中有定义,可以自行查看。

我们要做的,就是修改--source的地址,改成如下配置:

--source=kubernetes:http://10.5.10.116:8080?inClusterConfig=false

其中10.5.10.116即apiserver地址,inClusterConfig=false代表不使用service accounts中的kube config信息。

这样配置以后,我们重新运行heapster,再等一会生成数据,就可以看到如下界面了:

时间: 2024-10-13 18:53:25

Kubernetes1.5 集成Heapster的相关文章

Kubernetes1.5 集成dashboard

Kubernetes1.5 集成dashboard 配置kubernetes的dashboard相对简单.同样的,只需要从源码中获取到dashboard-controller.yaml及dashboard-service.yaml文件,稍加修改即可: wget https://rawgit.com/kubernetes/kubernetes/master/cluster/addons/dashboard/dashboard-controller.yaml wget https://rawgit.

Kubernetes 1.5集成heapster

Heapster是kubernetes集群监控工具.在1.2的时候,kubernetes的监控需要在node节点上运行cAdvisor作为agent收集本机和容器的资源数据,包括cpu.内存.网络.文件系统等.在新版的kubernetes中,cAdvisor被集成到kubelet中.通过netstat可以查看到kubelet新开了一个4194的端口,这就是cAdvisor监听的端口,现在我们然后可以通过http://<node-ip>:4194的方式访问到cAdvisor.Heapster就是

Kubernetes集成Heapster监控

Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS.Kubernetes有个出名的监控agent-cAdvisor.在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime).在较新的版本中,K8S已经将cAdvisor功能集成到kubelet组件中.每个Node节点可以直接进行web访问. 1.镜像下载[[email protected]_ma

[k8s集群系列-09]Kubernetes 组件 Dashboard

Kubernetes Dashboard是Kubernetes集群的通用基于Web的UI.它允许用户管理在群集中运行的应用程序并对其进行故障排除,并管理群集本身. 部署Dashboard 项目github地址 官方文档参考 获取yaml文件 curl -O https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml # https访问的

kubernetes安装dashboard步骤

本篇文章参考kubernetes---dashboardv1.8.3版本安装详细步骤及 kubernetes-dashboard(1.8.3)部署与踩坑这两篇文章,详细写了自己部署过程中的操作.遇到的问题及解决方案. 部署Dashboard UI kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.ya

建立Heapster Influxdb Grafana集群性能监控平台

依赖于kubenets dns服务地址:https://note.youdao.com/web/#/file/WEB42cf75c02ae113136ff664f3f137cb67/note/WEB0eec19f3667471969b3354b7128fda9c/ 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster .Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS ,并且支持多种存储后端,比如: InfluxDB . ElasticSe

Kubernetes1.10中部署dashboard以及常见问题解析

上篇文章中介绍了用kubeadm安装Kubernetes1.10,本篇我们来一睹Kubernetes Dashboard风采. 老规矩,先介绍下环境: Kubernetes1.10,Dashboard1.8.3 在k8s中 dashboard可以有两种访问方式:kubeconfig(HTTPS)和token(http)本篇先来介绍下Token方式的访问. Token访问是无登录密码的,简单方便 1.下载官方的dashboard YAML文件或者下载我的YAML(无坑版) # 官网版 https:

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

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

来了,老弟!__二进制部署kubernetes1.11.7集群

Kubernetes容器集群管理 Kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S.K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的,Borg已经在Google大规模生产运行十年之久.K8S主要用于自动化部署.扩展和管理容器应用,提供了资源调度.部署管理.服务发现.扩容缩容.监控等一整套功能.2015年7月,Kubernetes v1.0正式发布.Kubernetes目标是让