第3章 Kubernetes监控与日志
Kubernetes监控与日志
• 查看集群资源状况
• 监控集群资源利用率
• 管理K8s组件日志
• 管理K8s应用日志
• 收集K8s日志思路
3.1查看资源集群状态
查看master组件状态: kubectl get cs 查看node状态: kubectl get node 查看Apiserver代理的URL: kubectl cluster-info 查看集群详细信息: kubectl cluster-info dump 查看资源信息: kubectl describe <资源> <名称> 查看资源信息: kubectl get <资源>
3.2监控集群资源利用率
查看Node资源消耗: Kubectl top node <node name> 查看pod资源消耗: Kubectl top pod <pod name> 执行时会提示错误:error: Metrics API not available 这是因为这个命令需要由metric-server服务提供数据,而这个服务默认没有安装,还需要手动部署下
3.2.1 Metrics-server 工作流程图
Metric Server是一个集群范围的资源利用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上kubelet API收集指标,通过kubernetes聚合器注册在Master APIServers中。为集群提供Node,Pods资源利用率指标:项目地址:https://github.com/kubernetes-sigs/metrics-server
3.2.2Metrics-server 资源监控指标部署
# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
# vi components.yaml ... containers: - args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname - --kubelet-use-node-status-port - --kubelet-insecure-tls image: lizhenliang/metrics-server:v0.4.1 ... 增加一个kubelet-insecure-tls参数,这个参数作用是告诉metrics-server不验证kubelet提供的https证书 检查是否部署成功: kubectl get apiservices |grep metrics kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes 如果状态True并能返回数据说明Metrics Server服务工作正常。
3.3管理k8s组件日志
• K8S系统的组件日志
• K8S Cluster里面部署的应用程序日志
- 标准输出
- 日志文件
3.4管理k8s组件日志
systemd守护进程管理的组件: journalctl -u kubelet Pod部署的组件: kubectl logs kube-proxy-btz4p -n kube-system 系统日志: /var/log/messages 查看容器标准输出日志: kubectl logs <Pod名称> kubectl logs -f <Pod名称> kubectl logs -f <Pod名称> -c <容器名称> 标准输出在宿主机的路径 /var/lib/docker/containers/<container-id>/<container-id>-json.log
3.4.1管理k8s应用日志
容器中应用日志可以使用emptyDir数据卷将日志文件持久化到宿主机上。 宿主机的路径: /var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/logs/access.log
3.4.2收集k8s日志思路
针对标准输出:以DaemonSet方式在每个Node上部署一个日志收集程序,采集/var/lib/docker/containers/目录下所有容器日志
针对容器中日志文件:
在pod中增加一个容器运行日志采集器,使用emtyDir共享目录让日志采集器读取到日志文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!