Kubernetes集成Heapster监控

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

1、镜像下载
[[email protected]_master ~]# docker pull ist0ne/heapster-grafana-amd64
[[email protected]_master ~]# docker pull ist0ne/heapster-amd64
[[email protected]_master ~]# docker pull ist0ne/heapster-influxdb-amd64:v1.1.1

2、下载Heapster,最新版本1.3.0
wget https://github.com/kubernetes/heapster/archive/v1.3.0.tar.gz
tar zxf v1.3.0.tar.gz

3、进入heapster-1.3.0/deploy/kube-config/influxdb/目录
[[[email protected]_master heapster-1.3.0]# ls -latr deploy/kube-config/influxdb/
total 24
-rw-rw-r-- 1 root root 477 Mar 17 2017 influxdb-service.yaml
-rw-rw-r-- 1 root root 493 Mar 17 2017 influxdb-deployment.yaml
-rw-rw-r-- 1 root root 453 Mar 17 2017 heapster-service.yaml
-rw-rw-r-- 1 root root 521 Mar 17 2017 heapster-deployment.yaml
-rw-rw-r-- 1 root root 695 Mar 17 2017 grafana-service.yaml
-rw-rw-r-- 1 root root 1417 Mar 17 2017 grafana-deployment.yaml

4、修改配置文件对应的image:
grafana-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: monitoring-grafana
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: grafana
    spec:
      containers:
      - name: grafana
        image: docker.io/ist0ne/heapster-grafana-amd64:latest
        ports:
          - containerPort: 3000
            protocol: TCP
        volumeMounts:
        - mountPath: /var
          name: grafana-storage
        env:
        - name: INFLUXDB_HOST
          value: monitoring-influxdb
        - name: GRAFANA_PORT
          value: "3000"
          # The following env variables are required to make Grafana accessible via
          # the kubernetes api-server proxy. On production clusters, we recommend
          # removing these env variables, setup auth for grafana, and expose the grafana
          # service using a LoadBalancer or a public IP.
        - name: GF_AUTH_BASIC_ENABLED
          value: "false"
        - name: GF_AUTH_ANONYMOUS_ENABLED
          value: "true"
        - name: GF_AUTH_ANONYMOUS_ORG_ROLE
          value: Admin
        - name: GF_SERVER_ROOT_URL
          # If you‘re only using the API Server proxy, set this value instead:
          # value: /api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/
          value: /
      volumes:
      - name: grafana-storage
        emptyDir: {}

heapster-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: heapster
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: heapster
    spec:
      containers:
      - name: heapster
        image: docker.io/ist0ne/heapster-amd64:latest
        imagePullPolicy: IfNotPresent
        command:
        - /heapster
        - --source=kubernetes:http://192.168.3.216:8080?inClusterConfig=false
        - --sink=influxdb:http://monitoring-influxdb:8086

influxdb-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: monitoring-influxdb
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: influxdb
    spec:
      containers:
      - name: influxdb
        image: docker.io/ist0ne/heapster-influxdb-amd64:v1.1.1
        volumeMounts:
        - mountPath: /data
          name: influxdb-storage
      volumes:
      - name: influxdb-storage
        emptyDir: {}

启动服务
[[email protected]_master heapster-1.3.0]# kubectl create -f deploy/kube-config/influxdb/
删除服务
[[email protected]_master heapster-1.3.0]# kubectl delete -f deploy/kube-config/influxdb/

查看pod
[[email protected]_master ~]# kubectl get pods --all-namespaces

NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE
default       busybox                                 1/1       Running   93         3d
kube-system   heapster-4127054459-wzppn               1/1       Running   0          3d
kube-system   kube-dns-2074712928-dxv2q               4/4       Running   4          3d
kube-system   kubernetes-dashboard-3665076642-9z0jc   1/1       Running   0          3d
kube-system   monitoring-grafana-597639858-tqpf2      1/1       Running   0          3d
kube-system   monitoring-influxdb-3575671003-9rpkh    1/1       Running   0          3d
web           nginx-491251965-dp4xz                   1/1       Running   2          4d
web           nginx-491251965-rjhhp                   1/1       Running   2          4d

打开浏览器http://192.168.3.216:8080/ui

原文地址:http://blog.51cto.com/jonauil/2088665

时间: 2024-10-10 19:00:41

Kubernetes集成Heapster监控的相关文章

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

Mesos+Kubernetes集成安装部署

因为Docker本身没有提供集群管理能力,对于docker集群一台台的登陆操作不太现实,因此需要引进容器集群的管理工具,主流的有mesosphere的marathon.谷歌的Kubernetes.docker社区的swarm,目前成熟度最高的是Kubernetes.Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 使用Docker对应用程序包装(package).实例化(

Spring Boot Admin 集成自定义监控告警

Spring Boot Admin 集成自定义监控告警 前言 Spring Boot Admin 是一个社区项目,可以用来监控和管理 Spring Boot 应用并且提供 UI,详细可以参考 官方文档. Spring Boot Admin 本身提供监控告警功能,但是默认只提供了 Hipchat.Slack 等国外流行的通讯软件的集成,虽然也有邮件通知,不过考虑到使用体检决定二次开发增加 钉钉 通知. 本文基于 Spring Boot Admin 目前最新版 1.5.7. 准备工作 Spring

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就是

用 Heapster 监控集群

Heapster 是 Kubernetes 原生的集群监控方案.Heapster 以 Pod 的形式运行,它会自动发现集群节点.从节点上的 Kubelet 获取监控数据.Kubelet 则是从节点上的 cAdvisor 收集数据. Heapster 将数据按照 Pod 进行分组,将它们存储到预先配置的 backend 并进行可视化展示.Heapster 当前支持的 backend 有 InfluxDB(通过 Grafana 展示),Google Cloud Monitoring 等.Heapst

Kubernetes集群监控方案

本文介绍在k8s集群中使用node-exporter.prometheus.grafana对集群进行监控.其实现原理有点类似ELK.EFK组合.node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过网页以图形的形式展现给用户. 在开始之前有必要了解下Prometheus是什么?Prometheus (中文名:普罗米修斯)是由 SoundCloud 开发的开源监控报警系统和时序列

Kubernetes相关组件监控指标采集

线上部署了kuberneter集群环境,需要在zabbix上对相关组件运行情况进行监控.kuberneter组件监控指标分为固定指标数据采集和动态指标数据采集.其中,固定指标数据在终端命令行可以通过metrics接口获取, 在zabbix里"自动发现":动态指标数据通过python脚本获获取,并返回JSON 字符串格式,在zabbix里添加模板或配置主机的自动发现策略. 一.固定指标数据采集(zabbix自动发现,采集间隔建议5min) 1. Master指标[采集范围:Master集

Dubbo与Kubernetes集成

Dubbo应用迁移到docker的问题 Dubbo是阿里开源的一套服务治理与rpc框架,服务的提供者通过zookeeper把自己的服务发布上去,然后服务调用方通过zk获取服务的ip和端口,dubbo客户端通过自己的软负载功能自动选择服务提供者并调用,整个过程牵涉到的三方关系如下图所示. 在正常的情况下,这三方都在同一个互通的网段,provider提供给zk的就是获取到的本机地址,consumer能访问到这个地址. 但是假如服务放在docker容器中,而调用者并不在docker中,它们的网段是不一

elasticSearch2.4与grafana,stagemonitor集成做监控需要执行的mapping

PUT /_template/stagemonitor-metrics-{ "template": "stagemonitor-metrics-*", "settings": { "index": { "refresh_interval": "5s" } }, "mappings": { "_default_": { "dynamic_t