kubernetes 資源監控

kubernetes 資源監控

kubernetes監控有多種方式,本章節介紹的爲heapster獨立版本,因爲此種部署方式與dashborad結合比較緊密。

heapster獨立服務部署

未部署監控前dashborad的node監控顯示如下:

這裏寫圖片描述

heapster-controller.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: heapster-v1.2.0
  namespace: kube-system
  labels:
    k8s-app: heapster
    kubernetes.io/cluster-service: "true"
    version: v1.2.0
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: heapster
      version: v1.2.0
  template:
    metadata:
      labels:
        k8s-app: heapster
        version: v1.2.0
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
        scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
    spec:
      containers:
        - image: shenshouer/heapster:v1.2.0
          name: heapster
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8082
              scheme: HTTP
            initialDelaySeconds: 180
            timeoutSeconds: 5
          resources:
            # keep request = limit to keep this container in guaranteed class
            limits:
              cpu: 80m
              memory: 200Mi
            requests:
              cpu: 80m
              memory: 200Mi
          command:
            - /heapster
            - --source=kubernetes.summary_api:''
        - image: shenshouer/addon-resizer:1.6
          name: heapster-nanny
          resources:
            limits:
              cpu: 50m
              memory: 92160Ki
            requests:
              cpu: 50m
              memory: 92160Ki
          env:
            - name: MY_POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: MY_POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          command:
            - /pod_nanny
            - --cpu=80m
            - --extra-cpu=0.5m
            - --memory=140Mi
            - --extra-memory=4Mi
            - --threshold=5
            - --deployment=heapster-v1.2.0
            - --container=heapster
            - --poll-period=300000
            - --estimator=exponential

heapster-service.yaml:

kind: Service
apiVersion: v1
metadata: 
  name: heapster
  namespace: kube-system
  labels: 
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "Heapster"
spec: 
  ports: 
    - port: 80
      targetPort: 8082
  selector: 
    k8s-app: heapster

將如上兩個文件放置到heapster/文件夾中執行如下命令:

sope-MacBookPro:heapster sope$ kubectl create -f ./
deployment "heapster-v1.2.0" created
service "heapster" created

檢查服務啓動情況:

# 檢查heapster的pod啓動情況
sope-MacBookPro:heapster sope$ kubectl --namespace kube-system get po -o wide
NAME                                READY     STATUS    RESTARTS   AGE       IP             NODE
heapster-v1.2.0-3541267077-9txto    2/2       Running   0          1m        10.244.160.4   172.19.8.103
kube-dns-v20-9oplg                  3/3       Running   3          3d        10.244.160.3   172.19.8.103
kubernetes-dashboard-v1.4.0-xslrc   1/1       Running   1          3d        10.244.232.2   172.19.8.102

# 檢查rc啓動情況:
sope-MacBookPro:heapster sope$ kubectl --namespace kube-system get rc
NAME                          DESIRED   CURRENT   READY     AGE
kube-dns-v20                  1         1         1         3d
kubernetes-dashboard-v1.4.0   1         1         1         3d

# 檢查svc啓動情況:
sope-MacBookPro:heapster sope$ kubectl --namespace kube-system get svc
NAME                   CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
heapster               10.100.0.34    <none>        80/TCP          2m
kube-dns               10.100.0.10    <none>        53/UDP,53/TCP   3d
kubernetes-dashboard   10.100.0.224   <none>        80/TCP          3d

# 查看集羣信息:
sope-MacBookPro:heapster sope$ kubectl cluster-info
Kubernetes master is running at https://172.19.8.101:443
Heapster is running at https://172.19.8.101:443/api/v1/proxy/namespaces/kube-system/services/heapster
KubeDNS is running at https://172.19.8.101:443/api/v1/proxy/namespaces/kube-system/services/kube-dns
kubernetes-dashboard is running at https://172.19.8.101:443/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看Dashborad,有監控數據顯示:

這裏寫圖片描述

pod 監控數據顯示:

這裏寫圖片描述

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