第十章 九析帶你輕鬆完爆 helm3 heapster

注意:可在我 百度網盤 直接下載 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 等報表展示工具進行顯示。

heapster.png

        本章採用 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 文件,添加內容如下圖:

clipboard2.png

        再次執行,heapster 安裝成功。截圖如下:

clipboard3.png


5 heapster 使用

kubectl top nodes

spacer.gif064154966861.png

        注意:如果命令執行後,顯示 error: metrics not available yet,你可以稍微等一下,因爲建立通信和獲取信息需要一段時間。

064239805156.png

        自此,helm3 輕鬆完爆 heapster。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章