现在都用什么做网站护理专业主要学什么
kubernetes学习-使用metrics-server监控集群资源和查看日志
- 一 、简介
 - 二、应用场景
 - 三、部署
 - 四、查看日志
 
一 、简介
Metrics Server 是一个用于 Kubernetes 集群的监控工具,它用于收集、存储和提供关于集群中各种资源的度量数据。Metrics Server 是 Kubernetes 中一个核心的指标收集器,可以提供关于 CPU 和内存使用情况、节点资源利用率以及其他重要指标的信息。它主要用于水平自动扩展(Horizontal Pod Autoscaling,HPA)和 Kubernetes Dashboard 等 Kubernetes 组件的正常运行。
Metrics Server 通过轮询 Kubernetes API 服务器来获取有关容器、节点和集群级别资源使用情况的数据。然后,它将这些数据存储在内存中,并在请求时返回给用户或其他 Kubernetes 组件。Metrics Server 不存储历史数据,因此它主要用于实时监控和自动化任务。
Metrics Server 的工作原理是通过在每个节点上运行的 kubelet 组件定期收集容器和节点级别的度量数据,并将其暴露给 Metrics Server。Metrics Server 将这些数据聚合并提供给 Kubernetes API 服务器,以便用户可以使用 kubectl 或其他工具查询集群的资源使用情况。
Metrics Server 是 Kubernetes 的一个重要组件,特别是在需要进行自动扩展或监控集群资源使用情况时。它可以帮助管理员和开发人员更好地了解其集群的运行状况,并且可以根据实时数据进行自动化操作。
 
二、应用场景
有了Metrics Server,你可以实现以下功能:
- 水平自动扩缩(Horizontal Pod Autoscaler, HPA):根据实际资源使用情况自动增加或减少Pod的数量。
 - 资源调度优化:更好的了解每个工作负载的需求,从而更有效地分配资源。 性能监控:定期检查集群性能,确保服务稳定运行。
 - 故障排查:快速定位资源瓶颈,帮助解决性能问题。
 
特点
- 轻量级:Metrics Server不需要额外安装代理或者守护进程,降低了系统的复杂性。
 - 高效:实时更新,提供近乎实时的度量数据。
 - 可扩展:可以与其他监控工具(如Prometheus、Grafana)集成,丰富监控场景。
 - 社区活跃:由Kubernetes Incubator维护,拥有丰富的文档和支持。
 
三、部署
官方部署文档
 下载components.yaml文件到本地
~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
 
修改yaml文件,在文件中添加上–kubelet-insecure-tls
 
 部署
~]# kubectl apply -f components.yaml
~]# kubectl get pods -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
kube-system            calico-kube-controllers-cd8566cf-ljnnf       1/1     Running   3 (95m ago)     100m
kube-system            calico-node-bhpwv                            1/1     Running   0               100m
kube-system            calico-node-sn6vw                            1/1     Running   0               100m
kube-system            calico-node-vdcz7                            1/1     Running   0               100m
kube-system            coredns-6d8c4cb4d-kh4md                      1/1     Running   2 (138m ago)    4h31m
kube-system            coredns-6d8c4cb4d-qw6hc                      1/1     Running   2 (138m ago)    4h31m
kube-system            etcd-master                                  1/1     Running   10 (138m ago)   4h31m
kube-system            kube-apiserver-master                        1/1     Running   9 (138m ago)    4h31m
kube-system            kube-controller-manager-master               1/1     Running   12 (138m ago)   4h31m
kube-system            kube-proxy-7sc8n                             1/1     Running   6 (146m ago)    4h27m
kube-system            kube-proxy-7v7rb                             1/1     Running   2 (138m ago)    4h31m
kube-system            kube-proxy-fjfjd                             1/1     Running   2 (140m ago)    4h28m
kube-system            kube-scheduler-master                        1/1     Running   11 (138m ago)   4h31m
kube-system            metrics-server-c59bb7d44-7q6mv               1/1     Running   0               68s
 
查看资源占用命令
~]# kubectl top node		# 查看节点资源占用情况
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master    160m         8%     1715Mi          62%       
node-01   63m          6%     947Mi           55%       
node-02   64m          6%     900Mi           52%
~]# kubectl top pod -A		# 查看pod占用资源情况
NAMESPACE              NAME                                         CPU(cores)   MEMORY(bytes)   
kube-system            calico-kube-controllers-cd8566cf-ljnnf       1m           22Mi            
kube-system            calico-node-bhpwv                            19m          79Mi            
kube-system            calico-node-sn6vw                            21m          78Mi            
kube-system            calico-node-vdcz7                            20m          74Mi            
kube-system            coredns-6d8c4cb4d-kh4md                      1m           12Mi            
kube-system            coredns-6d8c4cb4d-qw6hc                      1m           15Mi            
kube-system            etcd-master                                  8m           65Mi            
kube-system            kube-apiserver-master                        32m          317Mi           
kube-system            kube-controller-manager-master               8m           50Mi            
kube-system            kube-proxy-7sc8n                             1m           8Mi             
kube-system            kube-proxy-7v7rb                             1m           13Mi            
kube-system            kube-proxy-fjfjd                             1m           14Mi            
kube-system            kube-scheduler-master                        2m           19Mi            
kube-system            metrics-server-c59bb7d44-7q6mv               2m           13Mi            
kubernetes-dashboard   dashboard-metrics-scraper-799d786dbf-684mg   1m           7Mi             
kubernetes-dashboard   kubernetes-dashboard-6b6b86c4c5-s7xmd        1m           19Mi
 
如果无法联网下载镜像,也可以使用我上传的资源metrics-server下载
四、查看日志
查看pod中容器日志
 命令:kubectl logs {pod名称} -n {命名空间名称} -f
 查看kebelet日志
 命令: journalctl -u kebelet -f
 容器终端中查看日志
 命令:kubectl exec -it {pod名称} – bash # 进入容器内
 标准输出在宿主机的路径
 /var/lib/docker/containers/{容器ID}/{容器ID}-json.log
