注意:可在我 百度網盤 直接下載 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。