注意:可在我 百度网盘 直接下载 helm、minio 以及修改好的 gitlab、nginx-ingress、nexus 、heapster 资源包


本系列文章:

第一章:helm 一分钟轻松完爆

第二章:helm 轻松完爆公共仓库

第三章:helm 轻松完爆私有仓库

第四章:helm 轻松完爆 chart

第五章:helm 轻松完爆 release

第六章:九析带你轻松完爆 helm gitlab

第七章:九析带你轻松完爆 helm nginx-ingress

第八章:九析带你轻松完爆 helm gitlab nfs

第九章:九析带你轻松完爆 helm nexus

第十章:九析带你轻松完爆 helm3 heapster

目录

1 heapster 介绍

2 heapster 下载

3 heapster 配置

    3.1 编辑 values.yaml 文件

    3.2 创建 serviceaccount 和 clusterrolebinding

4 heapster 安装

    4.1 修改 deployment apiVersion

    4.2 添加 deployment selector

5 heapster 使用


1 heapster 介绍

        heapster 是 k8s 官方支持的集群节点监控和分析组件。它首先从 master 中获取所有 node 节点,然后再从各个 node 的 kubelet 获取数据,而 kubelet 的数据又是从各自节点上运行的监控客户端 cAdvisor 中获取。三者之间的关系如下图所示。heaspter 可以将获取到的监控信息导给 grafana 或 k8s dashboard 等报表展示工具进行显示。

第十章 九析带你轻松完爆 helm3 heapster_第1张图片

        本章采用 helm v3.0.0 来安装 heapster。


2 heapster 下载

clipboard1.png

helm pull stable/heapster


3 heapster 配置

3.1 编辑 values.yaml 文件

        修改镜像、启动项和 rbac 账户:

image:

    repository: registry.aliyuncs.com/google_containers/heapster-amd64

  tag: v1.5.2


command:

    - "/heapster"

    - "--source=kubernetes.summary_api:https://kubernetes.default?kubeletPort=10250&kubeletHttps=true&insecure=true"


rbac:

    serviceAccountName: heapster-jiuxi

3.2 创建 serviceaccount 和 clusterrolebinding

        创建 heapster-jiuxi.yaml 文件,内容如下:

apiVersion: v1

kind: ServiceAccount

metadata:

  name: heapster-jiuxi

  namespace: kube-system

  labels:

    kubernetes.io/cluster-service: "true"

    addonmanager.kubernetes.io/mode: Reconcile

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

  annotations:

    rbac.authorization.kubernetes.io/autoupdate: "true"

  name: heapster-jiuxi

roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: cluster-admin

subjects:

- kind: ServiceAccount

  name: heapster-jiuxi

  namespace: kube-system

        执行 heapster-jiuxi.yaml 文件:

kubectl apply -f heapster-jiuxi.yaml


4 heapster 安装

helm install heapster -n kube-system heapster

        如果有如下报错,说明你的 k8s 版本太高,过于前卫:

4.1 修改 deployment apiVersion

   Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

        执行如下语句,轻松完爆:

grep -irl 'extensions/v1beta1' heapster/ | xargs sed -i 's#extensions/v1beta1#apps/v1#g'

4.2 添加 deployment selector

        如果执行还是报错,报错内容如下:

   Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpe

        编辑 templates/deployment.yaml 文件,添加内容如下图:

第十章 九析带你轻松完爆 helm3 heapster_第2张图片

        再次执行,heapster 安装成功。截图如下:

第十章 九析带你轻松完爆 helm3 heapster_第3张图片


5 heapster 使用

kubectl top nodes

spacer.gif第十章 九析带你轻松完爆 helm3 heapster_第4张图片

        注意:如果命令执行后,显示 error: metrics not available yet,你可以稍微等一下,因为建立通信和获取信息需要一段时间。

064239805156.png

        自此,helm3 轻松完爆 heapster。