• 1. heapster简介
  • 2. heapster部署与配置
    • 2.1. 注意事项
    • 2.2. 容器式部署
    • 2.3. 配置说明
    • 2.3.1. –source
    • 2.3.2. –sink
  • 3. Metrics
  • 4. Labels
  • 5. heapster API

    title: “[Kubernetes] Heapster介绍”
    catalog: true
    date: 2017-08-13 10:50:57
    type: “categories”
    subtitle:
    header-img:
    tags:

    • Kubernetes
      catagories:
    • Kubernetes

    1. heapster简介

    Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS。
    Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。

    2. heapster部署与配置

    2.1. 注意事项

    需同步部署机器和被采集机器的时间:ntpdate time.windows.com

    加入定时任务,定期同步时间

    crontab –e

    30 5 * /usr/sbin/ntpdate time.windows.com //每天早晨5点半执行

    2.2. 容器式部署

    1. #拉取镜像
    2. docker pull heapster:latest
    3. #运行容器
    4. docker run -d -p 8082:8082 --net=host heapster:latest --source=kubernetes:http://<k8s-server-ip>:8080?inClusterConfig=false\&useServiceAccount=false --sink=influxdb:http://<influxdb-ip>:8086?db=<k8s_env_zone>

    2.3. 配置说明

    可以参考官方文档

    2.3.1. –source

    –source: 指定数据获取源。这里指定kube-apiserver即可。
    后缀参数:
    inClusterConfig:
    kubeletPort: 指定kubelet的使用端口,默认10255
    kubeletHttps: 是否使用https去连接kubelets(默认:false)
    apiVersion: 指定K8S的apiversion
    insecure: 是否使用安全证书(默认:false)
    auth: 安全认证
    useServiceAccount: 是否使用K8S的安全令牌

    2.3.2. –sink

    –sink: 指定后端数据存储。这里指定influxdb数据库。
    后缀参数:
    user: InfluxDB用户
    pw: InfluxDB密码
    db: 数据库名
    secure: 安全连接到InfluxDB(默认:false)
    withfields: 使用InfluxDB fields(默认:false)。

    3. Metrics

    分类 Metric Name Description 备注
    cpu cpu/limit CPU hard limit in millicores. CPU上限
    cpu/node_capacity Cpu capacity of a node. Node节点的CPU容量
    cpu/node_allocatable Cpu allocatable of a node. Node节点可分配的CPU
    cpu/node_reservation Share of cpu that is reserved on the node allocatable.
    cpu/node_utilization CPU utilization as a share of node allocatable.
    cpu/request CPU request (the guaranteed amount of resources) in millicores.
    cpu/usage Cumulative CPU usage on all cores. CPU总使用量
    cpu/usage_rate CPU usage on all cores in millicores.
    filesystem filesystem/usage Total number of bytes consumed on a filesystem. 文件系统的使用量
    filesystem/limit The total size of filesystem in bytes. 文件系统的使用上限
    filesystem/available The number of available bytes remaining in a the filesystem 可用的文件系统容量
    filesystem/inodes The number of available inodes in a the filesystem
    filesystem/inodes_free The number of free inodes remaining in a the filesystem
    memory memory/limit Memory hard limit in bytes. 内存上限
    memory/major_page_faults Number of major page faults.
    memory/major_page_faults_rate Number of major page faults per second.
    memory/node_capacity Memory capacity of a node.
    memory/node_allocatable Memory allocatable of a node.
    memory/node_reservation Share of memory that is reserved on the node allocatable.
    memory/node_utilization Memory utilization as a share of memory allocatable.
    memory/page_faults Number of page faults.
    memory/page_faults_rate Number of page faults per second.
    memory/request Memory request (the guaranteed amount of resources) in bytes.
    memory/usage Total memory usage.
    memory/cache Cache memory usage.
    memory/rss RSS memory usage.
    memory/working_set Total working set usage. Working set is the memory being used and not easily dropped by the kernel.
    network network/rx Cumulative number of bytes received over the network.
    network/rx_errors Cumulative number of errors while receiving over the network.
    network/rx_errors_rate Number of errors while receiving over the network per second.
    network/rx_rate Number of bytes received over the network per second.
    network/tx Cumulative number of bytes sent over the network
    network/tx_errors Cumulative number of errors while sending over the network
    network/tx_errors_rate Number of errors while sending over the network
    network/tx_rate Number of bytes sent over the network per second.
    uptime Number of milliseconds since the container was started. -

    4. Labels

    Label Name Description
    pod_id Unique ID of a Pod
    pod_name User-provided name of a Pod
    pod_namespace The namespace of a Pod
    container_base_image Base image for the container
    container_name User-provided name of the container or full cgroup name for system containers
    host_id Cloud-provider specified or user specified Identifier of a node
    hostname Hostname where the container ran
    labels Comma-separated(Default) list of user-provided labels. Format is ‘key:value’
    namespace_id UID of the namespace of a Pod
    resource_id A unique identifier used to differentiate multiple metrics of the same type. e.x. Fs partitions under filesystem/usage

    5. heapster API

    见官方文档:https://github.com/kubernetes/heapster/blob/master/docs/model.md