注意:可在我 百度网盘 直接下载 helm、minio 以及修改好的 gitlab、nginx-ingress、nexus 、heapster 资源包
本系列文章:
第一章:helm 一分钟轻松完爆
第二章:helm 轻松完爆公共仓库
第三章:helm 轻松完爆私有仓库
第四章:helm 轻松完爆 chart
目录
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 等报表展示工具进行显示。
本章采用 helm v3.0.0 来安装 heapster。
2 heapster 下载
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 文件,添加内容如下图:
再次执行,heapster 安装成功。截图如下:
5 heapster 使用
kubectl top nodes
注意:如果命令执行后,显示 error: metrics not available yet,你可以稍微等一下,因为建立通信和获取信息需要一段时间。
自此,helm3 轻松完爆 heapster。