怎样监控centos上k8s的部署状态
导读:一、基础监控:使用kubectl命令行工具 kubectl是Kubernetes原生命令行工具,无需额外安装,适合快速查看集群及部署状态,是运维人员的基础工具。 查看节点状态:kubectl get nodes,可获取节点的Ready状态...
一、基础监控:使用kubectl命令行工具
kubectl是Kubernetes原生命令行工具,无需额外安装,适合快速查看集群及部署状态,是运维人员的基础工具。
- 查看节点状态:
kubectl get nodes
,可获取节点的Ready状态(是否正常运行)、内存/CPU资源容量及使用情况。 - 查看Pod状态:
kubectl get pods --all-namespaces
,显示所有命名空间下Pod的运行状态(Running/Pending/CrashLoopBackOff等)、重启次数及所属Deployment。 - 查看Deployment状态:
kubectl get deployments --all-namespaces
,查看Deployment的副本数(Desired/Current/Ready)、更新状态及可用副本数。 - 查看Service状态:
kubectl get services --all-namespaces
,确认Service的ClusterIP、端口映射及关联的Pod是否正常。 - 查看集群事件:
kubectl get events --all-namespaces
,获取集群内资源变更、错误告警等事件(如Pod调度失败、节点异常)。 - 查看详细信息:
kubectl describe pod < pod-name> -n < namespace>
(查看Pod的详细事件、容器状态)、kubectl describe deployment < deployment-name> -n < namespace>
(查看Deployment的更新历史、滚动升级状态)。
二、可视化监控:Kubernetes Dashboard
Kubernetes Dashboard是官方提供的Web UI,适合直观查看集群资源及部署状态,支持实时监控和简单操作(如扩缩容、重启Pod)。
- 安装Dashboard:执行
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
(以最新版本为准)。 - 访问Dashboard:通过
kubectl proxy
启动代理,然后在浏览器访问http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
。 - 登录方式:使用
kubectl -n kube-system create token admin-user
生成Token(需提前创建admin-user),输入Token即可登录。 - 功能:查看节点、Pod、Deployment、Service等资源的实时状态,支持筛选、排序及查看详情。
三、专业监控:Prometheus+Grafana组合
Prometheus+Grafana是云原生监控黄金组合,适合生产环境,提供全面的指标收集、存储、可视化及告警功能,覆盖节点、容器、Deployment等全栈监控。
- Prometheus:开源时间序列数据库,负责收集和存储指标数据。可通过Helm Chart快速部署(
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts; helm install prometheus prometheus-community/kube-prometheus-stack
),部署后会自动收集Kubernetes集群的节点、Pod、Deployment等指标。 - Grafana:开源可视化工具,负责将Prometheus中的指标转换为直观的仪表盘。安装后(
helm install grafana grafana/grafana
),添加Prometheus作为数据源(地址为http://prometheus-server
),导入官方或自定义仪表盘(如Kubernetes Cluster Monitoring、Node Exporter Full等),即可查看CPU、内存、Pod状态、Deployment副本数等可视化图表。 - 优势:支持告警规则(如Deployment副本数低于阈值时发送邮件/Slack通知)、自定义查询(PromQL语言)、动态仪表盘配置。
四、日志监控:ELK Stack或Loki+Grafana
日志是排查部署问题的关键,ELK(Elasticsearch+Logstash+Kibana)或Loki+Grafana组合可收集、存储及分析Kubernetes集群的日志(Pod、节点、应用日志)。
- ELK Stack:
- Elasticsearch:存储日志数据;Logstash:收集并解析日志(如从容器标准输出、节点日志文件);Kibana:可视化日志(支持全文搜索、过滤、聚合)。
- 部署方式:通过Helm Chart或手动部署(如
kubectl apply -f elasticsearch.yaml
、kubectl apply -f logstash.yaml
、kubectl apply -f kibana.yaml
)。
- Loki+Grafana:
- Loki:轻量级日志聚合系统(专为云原生设计,与Prometheus集成);Grafana:直接查询Loki日志并可视化。
- 部署方式:
helm install loki grafana/loki-stack
,配置Grafana数据源为Loki,即可查看应用日志(如kubectl logs
的输出)。
- 常用操作:
kubectl logs < pod-name> -n < namespace>
(查看Pod日志)、kubectl logs -f < pod-name> -n < namespace>
(实时跟踪日志)。
五、第三方监控工具
若需要企业级支持或更丰富的功能,可选择第三方监控工具,这些工具通常提供开箱即用的Kubernetes监控方案:
- Datadog:支持监控Kubernetes集群、应用性能、日志及分布式追踪,提供实时告警、容量规划等功能,适合大规模生产环境。
- New Relic:提供应用性能监控(APM)、基础设施监控及Kubernetes集群可视化,支持根因分析(RCA)和业务影响分析。
- Sysdig:专注于容器和Kubernetes监控,提供深度性能分析、安全检测(如容器逃逸、权限滥用)及故障排查功能,支持与Prometheus集成。
以上方法可根据需求选择:基础监控用kubectl,可视化用Dashboard,专业监控用Prometheus+Grafana,日志监控用ELK/Loki,企业级需求用第三方工具。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样监控centos上k8s的部署状态
本文地址: https://pptw.com/jishu/727501.html