k8s之监控集群资源利用率

一、查看资源集群状态

1、集群整体状态

 kubectl cluster-info

2、更多集群信息

kubectl cluster-info dump

3、查看资源信息

kubectl describe <资源> <名称>

4、实时查看资源信息

kubectl get pod<Pod名称> --watch

一、Metrics Server介绍

             Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标,通过Kubernetes聚合器注册在Master APIServer中。

1、工作原理

 2、Metrics Server部署

①项目地址

https://github.com/kubernetes-sigs/metrics-server

②下载Yaml文件

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

③修改Yaml文件

复制代码
      containers:
      - name: metrics-server
        image: lizhenliang/metrics-server-amd64:v0.3.1 #修改成国内镜像,这里使用lizhenliang已有的镜像
imagePullPolicy: IfNotPresent args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-insecure-tls #跳过tls检查 - --kubelet-preferred-address-types=InternalIP #以node ip连接kubelet
复制代码

④部署Metrics

kubectl apply -f components.yaml   #yaml文件应用,可以在任何路径下面应用

验证是否部署成功

复制代码
[root@k8s-master k8s]# kubectl get pods -n kube-system 
NAME                                      READY   STATUS    RESTARTS   AGE
calico-kube-controllers-676c4cbdf-f9m8w   1/1     Running   0          3d23h
calico-node-5wfdf                         1/1     Running   0          3d23h
calico-node-xzrwc                         1/1     Running   0          3d23h
coredns-7ff77c879f-c77qj                  1/1     Running   0          3d23h
coredns-7ff77c879f-tjws5                  1/1     Running   0          3d23h
etcd-k8s-master                           1/1     Running   0          3d23h
kube-apiserver-k8s-master                 1/1     Running   0          3d23h
kube-controller-manager-k8s-master        1/1     Running   0          3d23h
kube-proxy-jmqnj                          1/1     Running   0          3d23h
kube-proxy-vnzhk                          1/1     Running   0          3d23h
kube-scheduler-k8s-master                 1/1     Running   0          3d23h
metrics-server-8fcfb55ff-j8vmz            1/1     Running   1          2m     #状态已经Running
复制代码

⑤监控集群资源利用率

查看Metrics是否注册到APIsevice中

复制代码
[root@k8s-master k8s]# kubectl get apiservice
NAME                                   SERVICE                      AVAILABLE   AGE
v1.                                    Local                        True        4d19h
v1.admissionregistration.k8s.io        Local                        True        4d19h
v1.apiextensions.k8s.io                Local                        True        4d19h
v1.apps                                Local                        True        4d19h
v1.authentication.k8s.io               Local                        True        4d19h
v1.authorization.k8s.io                Local                        True        4d19h
v1.autoscaling                         Local                        True        4d19h
v1.batch                               Local                        True        4d19h
v1.coordination.k8s.io                 Local                        True        4d19h
v1.crd.projectcalico.org               Local                        True        9m2s
v1.networking.k8s.io                   Local                        True        4d19h
v1.rbac.authorization.k8s.io           Local                        True        4d19h
v1.scheduling.k8s.io                   Local                        True        4d19h
v1.storage.k8s.io                      Local                        True        4d19h
v1beta1.admissionregistration.k8s.io   Local                        True        4d19h
v1beta1.apiextensions.k8s.io           Local                        True        4d19h
v1beta1.authentication.k8s.io          Local                        True        4d19h
v1beta1.authorization.k8s.io           Local                        True        4d19h
v1beta1.batch                          Local                        True        4d19h
v1beta1.certificates.k8s.io            Local                        True        4d19h
v1beta1.coordination.k8s.io            Local                        True        4d19h
v1beta1.discovery.k8s.io               Local                        True        4d19h
v1beta1.events.k8s.io                  Local                        True        4d19h
v1beta1.extensions                     Local                        True        4d19h
v1beta1.metrics.k8s.io                 kube-system/metrics-server   True        53s
v1beta1.networking.k8s.io              Local                        True        4d19h
v1beta1.node.k8s.io                    Local                        True        4d19h
v1beta1.policy                         Local                        True        4d19h
v1beta1.rbac.authorization.k8s.io      Local                        True        4d19h
v1beta1.scheduling.k8s.io              Local                        True        4d19h
v1beta1.storage.k8s.io                 Local                        True        4d19h
v2beta1.autoscaling                    Local                        True        4d19h
v2beta2.autoscaling                    Local                        True        4d19h
复制代码

 查看节点资源使用率

[root@k8s-master k8s]# kubectl top node 
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   211m         21%    977Mi           33%       
k8s-node1    87m          8%     398Mi           13%  

查看Pod资源使用率,未排序

复制代码
[root@k8s-master k8s]# kubectl top pod -A
NAMESPACE              NAME                                         CPU(cores)   MEMORY(bytes)   
kube-system            calico-kube-controllers-676c4cbdf-f9m8w      1m           13Mi            
kube-system            calico-node-5wfdf                            25m          76Mi            
kube-system            calico-node-xzrwc                            23m          85Mi            
kube-system            coredns-7ff77c879f-c77qj                     3m           11Mi            
kube-system            coredns-7ff77c879f-tjws5                     3m           11Mi            
kube-system            etcd-k8s-master                              17m          52Mi            
kube-system            kube-apiserver-k8s-master                    36m          439Mi           
kube-system            kube-controller-manager-k8s-master           12m          41Mi            
kube-system            kube-proxy-7v26z                             1m           17Mi            
kube-system            kube-proxy-nxlrh                             1m           16Mi            
kube-system            kube-scheduler-k8s-master                    4m           16Mi            
kube-system            metrics-server-6767f6d894-jsbff              1m           14Mi            
kubernetes-dashboard   dashboard-metrics-scraper-6b4884c9d5-rdgz8   1m           7Mi             
kubernetes-dashboard   kubernetes-dashboard-7b544877d5-5thm9        1m           14Mi
复制代码

查看Pod资源使用率,并按照内存大小进行排序(cpu列说明:1000m=1c,即1000m代表1个cpu逻辑核,当cpu值显示大于100m时,建议留意下)

复制代码
 [root@k8s-master metrics-server]# kubectl top pod  -A  --sort-by=memory
NAMESPACE              NAME                                         CPU(cores)   MEMORY(bytes)   
kube-system            kube-apiserver-k8s-master                    57m          365Mi           
kube-system            etcd-k8s-master                              27m          217Mi           
kube-system            kube-controller-manager-k8s-master           24m          58Mi            
kube-system            calico-node-m4nq6                            42m          40Mi            
kube-system            calico-node-679b4                            40m          26Mi            
kube-system            calico-node-ghght                            51m          23Mi            
kubernetes-dashboard   kubernetes-dashboard-7f99b75bf4-phgc5        1m           22Mi            
kube-system            kube-scheduler-k8s-master                    7m           20Mi            
kube-system            kube-proxy-trgz8                             1m           14Mi            
kube-system            calico-kube-controllers-65f8bc95db-qxcwb     3m           14Mi            
kube-system            metrics-server-5667498b7d-9sst9              2m           13Mi            
kube-system            coredns-7ff77c879f-2wqw5                     4m           8Mi             
kube-system            kube-proxy-rxdn5                             1m           8Mi             
kube-system            kube-proxy-t55wt                             1m           8Mi             
kube-system            coredns-7ff77c879f-4kk6t                     4m           7Mi             
kubernetes-dashboard   dashboard-metrics-scraper-6b4884c9d5-dp7wh   1m           5Mi             
default                nginx-f89759699-k5rmn                        0m           1Mi             
cka                    aliang-666-74689c47f4-vwjr6                  0m           1Mi             
default                nginx-deploy                                 0m           1Mi             
default                aliang-666                                   0m           1Mi              
复制代码

 知识改变命运!!

原文地址:https://www.cnblogs.com/larry-luo/p/14299333.html