美文网首页
Kubernetes监控(Heapster)

Kubernetes监控(Heapster)

作者: 殷临风 | 来源:发表于2017-04-01 23:50 被阅读2190次

    当我们搭建好集群之后, 其运行状况是我们非常关心的, 能否用在生产环境, 而k8s也为我们提供相关的监控, 让我们可以时刻关注Pod运行状况, 以便可以按自己的需要扩容. 这里我们主要介绍heapster + influxdb + grafana方案

    1. Heapster

    负责收集pod各项指标, 比如cpu, 内存, 网络等.

    # 运行 yaml 文件
    kubectl create -f http://res.yinnote.com/kubernetes/heapster/1.5.1/heapster-rbac.yaml
    kubectl create -f http://res.yinnote.com/kubernetes/heapster/1.5.1/influxdb/heapster.yaml
    

    这个yaml文件是我从github下载并上传到我自己的资源服务器上, 修改了里面的镜像地址. 由于相关的镜像在google服务器, 我将其构建在阿里云上, 以便在国内能够使用

    可以通过下列命令查看服务

    kubectl get svc -n kube-system 
    

    可以通过下列命令查看`Pod`` 是否运行

    kubectl get po -n kube-system 
    

    详细介绍, 大家可以关注官方Github: https://github.com/kubernetes/heapster

    如果大家前面安装了kube-dashboard, 可以在dashboard的后台看到相关的cpu和内存的情况

    2. InfluxDB

    这个是存储pod信息相关的数据库, heapster获取数据之后, 可以指定存储在InfluxDB

    kubectl create -f http://res.yinnote.com/kubernetes/heapster/1.5.1/influxdb/influxdb.yaml
    
    3. Grafana

    这个主要是用于显示InfluxDB里面的数据情况, 可以让我们很直观看到数据变化

    kubectl create -f http://res.yinnote.com/kubernetes/heapster/1.5.1/influxdb/grafana.yaml
    

    针对grafana.yaml文件, 我除了修改镜像地址外, 还指定了其对外暴露的端口号31235, 以便我们后续好配置

    这个时候, 我们的服务应该是这样的, 注意我用红圈的, 后续我们可能会使用到:

    4. 访问

    如果一切没问题的话, 请求地址http://yinnote.com:31235最后看到的结果应该是这样:

    默认情况下, grafana是不需要密码的, 但如果我们想修改里面的配置, 就需要登录, 默认的账号密码是 admin, admin

    官方Github文档也有详细的介绍, 大家也可以参考一下
    https://github.com/kubernetes/heapster/blob/master/docs/influxdb.md

    后记

    一般而言, 很多公司都会有自己的监控系统, 我们没有必要再起一个grafana服务, 更没有必要新建一个influxdb, 只要把通过heaspter获取的数据存到我们自己的influxdb就行了

    # 下载并打开 heaspter
    cd /opt
    wget http://res.yinnote.com/kubernetes/heapster/1.5.1/influxdb/heapster.yaml
    vi heaspter.yaml
    # 修改sink地址
    #####################################################
    spec:
      serviceAccountName: heapster
      containers:
      - name: heapster
        image: registry.cn-hangzhou.aliyuncs.com/magina-k8s/heapster-amd64:v1.3.0
        imagePullPolicy: IfNotPresent
        command:
        - /heapster
        - --source=kubernetes:https://kubernetes.default
        - --sink=influxdb:http:/yinnote.com:8086?user=k8s&pw=xxxxxx&db=k8s
    #####################################################
    # 使配置生效
    kubectl apply -f heaspter.yaml
    

    将参数--sink指定为自己的influxdb地址. 为了安全, 最好设置认证信息, 另外influxdb也需要创建k8s相关的db, 并设置认证信息

    相关文章

      网友评论

          本文标题:Kubernetes监控(Heapster)

          本文链接:https://www.haomeiwen.com/subject/bwjwottx.html