前提条件

  • 您已經成功部署一個 Kubernetes 叢集,參見建立Kubernetes叢集
  • 本樣本使用的 Grafana 的鏡像地址是 registry.cn-hangzhou.aliyuncs.com/acs/grafana:5.0.4,內建了相關監控模板。

背景信息

在 kubernetes 的監控方案中,Heapster+Influxdb+Grafana 的組合相比 prometheus 等開源方案而言更為簡單直接。而且 Heapster 在 kubernetes 中承擔的責任遠不止監控資料的採集,控制台的監控介面、HPA的 POD Auto Scaling等都依賴於 Heapster 的功能。因此 Heapster 成為 kubernetes 中一個必不可少的組件,在阿里雲的 Kubernetes 叢集中已經內建了 Heapster+Influxdb 的組合,如果需要將監控的資料進行展示,只需要配置一個可用的 Grafana 與相應的 Dashboard 即可。

操作步骤

  1. 登入Container Service管理主控台
  2. 在 Kubernetes 菜單下,單擊左側導覽列中的應用 > 部署,進入部署列表頁面。
  3. 單擊頁面右上方的使用模板建立


  4. 對模板進行相關配置,部署 Grafana 的 deployment 和 service,完成配置後,單擊建立
    • 叢集:選擇所需的叢集。
    • 命名空間:選擇資來源物件所屬的命名空間,必須是kube-system
    • 樣本模板:本樣本選擇自訂模板,其中包含一個 deployment 和 service。


    本樣本的編排模板如下。

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
       name: monitoring-grafana
       namespace: kube-system
    spec:
       replicas: 1
       template:
         metadata:
           labels:
             task: monitoring
             k8s-app: grafana
         spec:
           containers:
           - name: grafana
             image: registry.cn-hangzhou.aliyuncs.com/acs/grafana:5.0.4
             ports:
             - containerPort: 3000
               protocol: TCP
             volumeMounts:
             - mountPath: /var
               name: grafana-storage
             env:
             - name: INFLUXDB_HOST
               value: monitoring-influxdb
           volumes:
           - name: grafana-storage
             emptyDir: {}
     ---
    apiVersion: v1
    kind: Service
    metadata:
       name: monitoring-grafana
       namespace: kube-system
    spec:
       ports:
       - port: 80
         targetPort: 3000
       type: LoadBalancer
       selector:
         k8s-app: grafana
  5. 完成部署後,返回部署頁面,選擇所需叢集,然後選擇 kube-system,查看其下部署的應用。


  6. 單擊 monitoring-grafana 的名稱,查看部署狀態,等待運行狀態變為 running。


  7. 單擊左側導覽列中的應用 > 服務,進入服務列表,選擇所需的叢集和命名空間(kube-system),查看外部端點。
    這個地址是通過 LoadBalancer 類型的 service 自動建立的,對於要求更安全存取原則的開發人員而言,建議考慮添加 IP 白名單或者使用配置認證等方式增強安全性。


  8. 選擇 monitoring-grafana 服務,單擊右側的外部端點,登入 Grafana 監控介面。
    預設的 Grafana 的使用者名和密碼都是 admin,建議在登入後先修改為更複雜的密碼。


  9. 您可選擇內建的監控模板 ,查看 Pod 和 Node 的監控 Dahsboard。
    本樣本使用的 Grafana 版本內建了兩個模板,一個負責展示節點層級的實體資源,一個負責展示 Pod 相關的資源。開發人員也可以通過添加自訂的 Dashboard 的方式進行更複雜的展現,也可以基於 Grafana 進行資源的警示等。