Kubernetes 監控和日志


1       查看集群資源狀態

1.1   查看mster集群狀態

kubectl  get  cs

 

1.2   查看node狀態

kubectl  get  node

 

1.3   查看Apiserver代理的URL

kubectl  cluster-info

 

1.4   查看集群線下信息

kubectl  cluster-info dump

1.5   查看資源信息

kubectl  describe  <資源>   <資源名稱>

 

 

1.6   列出k8s支持的資源

kubectl api-resources

 

 

 

1.7   實時查看資源信息

kubectl  get  pod(或是pod名稱)  -w(或是--watch)

 

2       監控集群資源利用率

2.1   metrics server

         Metrics server 是一個集群范圍的資源使用情況的數據聚合器,作為一個應用部署在集群中,metrics server 從每一個節點上kubelet api收集指標,通過kubernetes聚合器注冊在master apiserver中。

 

 

 

Metrics-server+cAdvisor監控集群資源消耗

 

2.2   部署

項目地址:https://github.com/kubernetes-sigs/metrics-server

wget  https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

 

修改vim components.yaml

 

 

 

2.3   查看node資源消耗

kubectl  top  node 

 

 

 

2.3.1  查看pod資源的消耗

kubectl  top  pod 

 

 

3       管理k8s組件日志

 

Systemd守護進程管理的組件:

jurnalctl -u kubelet

 

Pod部署的組件:

Kubectl  logs  kube-proxy-btxd4  -n kube-system

 

系統日志:

/var/log/messages

4       管理k8s應用日志

K8s cluster里面部署的應用程序日志

         -標准輸出

                   查看容器標准輸出的日志

                   kubectl logs podname

                   kubectl log -f  podname

                   kubect logs –f podname  -c  containername

                   標准輸出在宿主機的路徑

                   /var/log/docker/containers/<container-id>/<container-id>-json.log

-日志文件

                   容器中應用日志可以使用emptyDir數據卷將日志文件持久化到宿主機上,

                   宿主機的路徑:

                            /var/lib/kubelet/pods/<pod-id>/volumes/kubernetes,io~empty-dir/logs/*.log

 

4.1   日志收集方案

方案一:將容器應用程序日志共享到宿主機通過掛載空目錄emptyDir

實例:

apiVersion: v1

kind: Pod

metadata:

  labels:

    run: nginx-php-1

  name: my-nginx-pod

spec:

  containers:

  - image: lizhenliang/nginx-php

    name: nginx-php-1

    volumeMounts:

    - name: logs

      mountPath: /usr/local/nginx/logs

  volumes:

  - name: logs

emptyDir: {}

 

參考文檔:

https://kubernetes,io/docs/concepts/cluster-administration/logging

 

 

方案二:pod 創建一個邊車容器讀取業務容器日志

[root@k8s-master ~]# cat nginx-logs.yaml

apiVersion: v1

kind: Pod

metadata:

  labels:

  name: nginx-pods-logs

spec:

  containers:

  - image: lizhenliang/nginx-php

    name: nginx-pods

    volumeMounts:

    - name: logs

      mountPath: /usr/local/nginx/logs

  - name: nginx-pods-longs

    image: busybox

    args: [/bin/sh, -c,'tail -f /opt/access.log']

    volumeMounts:

    - name: logs

      mountPath: /opt

  volumes:

  - name: logs

    emptyDir: {}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM