Kubernetes(k8s)集群健康检查常用的五种指标

文章目录

1、节点健康指标

  • 节点状态:检查节点是否处于Ready状态,以及是否存在任何异常状态。

  • 资源利用率:监控节点的CPU、内存、磁盘等资源的使用情况,确保没有资源瓶颈。

  • 网络连通性:检查节点之间的网络连通性,Pod调度状态,确保Pod之间的通信正常等。

使用 kubectl get nodes -o wide 命令获取所有节点的状态信息,包括节点名称、IP地址、角色等。

bash 复制代码
kubectl get nodes -o wide

使用 kubectl cluster-info 命令显示当前连接到的集群的相关信息,如API服务器地址、版本号等。

bash 复制代码
kubectl cluster-info

使用 kubectl get nodes 命令可以获取所有节点的健康状态

bash 复制代码
kubectl get nodes

使用 kubectl get pods --all-namespaces 命令查看集群中所有命名空间中Pod的状态

bash 复制代码
kubectl get pods --all-namespaces
#雷同
kubectl get pod -A

用于获取Kubernetes集群中各个组件的健康状态,如API服务器、控制器管理器、调度器等。

bash 复制代码
kubectl get componetstatuses

使用 kubectl top 命令来查看节点和Pod的资源使用情况。(需要安装集群指标监控组件metrics)

bash 复制代码
kubectl top node

使用 kubectl top pod --all-namespaces或者 kubectl top pod -A命令查看Pod详细资源使用情况。

bash 复制代码
kubectl top pod  -A

使用 kubectl describe node vts-b 命令可以获取特定节点的详细信息,包括资源使用情况、事件记录等。

bash 复制代码
kubectl describe node vts-b


2、Pod健康指标

  • Pod状态:检查Pod是否正常运行,是否出现CrashLoopBackOff、Pending等异常状态。

  • 容器状态:检查Pod内各个容器的运行状态,确保容器没有崩溃或异常退出。

  • 资源使用情况:监控Pod的CPU、内存等资源的使用情况,确保Pod没有资源不足的问题。

使用 kubectl describe pod calico-node-tw42m -n kube-system命令查看Pod的详细信息,包括其事件历史、容器状态、资源使用情况等。

bash 复制代码
kubectl describe pod calico-node-tw42m -n kube-system

使用 kubectl get events --sort-by='.metadata.creationTimestamp' -n kube-system命令可以查看指定命名空间中的事件,按时间顺序排列。

bash 复制代码
kubectl get events --sort-by='.metadata.creationTimestamp' -n kube-system

3、服务健康指标

  • 服务可用性:检查服务是否能够正常访问,包括服务的可用性、响应时间、错误率等,是否存在任何故障或延迟。

  • 负载均衡:检查服务的负载均衡配置是否正确,确保请求能够均匀分发到各个Pod。

kubectl get services

kubectl describe service kubernetes

使用上面两条命令来获取服务的详细信息,包括其类型(如ClusterIP、NodePort、LoadBalancer等)、IP地址、端口号以及与之关联的Pod信息。

bash 复制代码
kubectl get services

kubectl describe service kubernetes

使用 kubectl logs -f polardbx-hpfs-9scjk -n polardbx-operator-system命令可以查看Pod中容器的日志,这对于诊断Pod为什么崩溃非常有用。

bash 复制代码
kubectl logs -f polardbx-hpfs-9scjk -n polardbx-operator-system

4、网络健康指标

  • 网络延迟:检查集群的网络连通性、检查集群内的网络延迟情况,确保网络通信顺畅。

  • 丢包率:监控网络传输过程中的丢包情况,避免数据传输问题。

5、存储健康指标

  • 持久卷状态:检查集群的存储状态,检查持久卷(Persistent Volume)的状态,确保存储资源可用。

  • 持久卷声明状态:检查持久卷(Persistent Volume Claim)的状态,确保Pod能够正常挂载存储,容量使用情况等。

bash 复制代码
kubectl get sc

kubectl get pv,pvc -A

使用上面两条命令来查看集群中所有的持久卷和持久卷声明。确保它们的状态是Bound,表示它们已经被正确地绑定到了Pod上。

这些健康检查指标可以通过Kubernetes提供的API、命令行工具(如kubectl)、监控系统(如Prometheus)等来获取和监控。通过对这些指标的持续监控和分析,可以及时发现和解决集群中的问题,确保集群的稳定性和高可用性。


当你觉得自己很难的时候,说明你在走上坡路,别急,美好正在马不停蹄地赶来的路上。


相关推荐
能不能别报错9 小时前
K8s学习笔记(十六) 探针(Probe)
笔记·学习·kubernetes
能不能别报错11 小时前
K8s学习笔记(十四) DaemonSet
笔记·学习·kubernetes
火星MARK12 小时前
k8s面试题
容器·面试·kubernetes
Serverless社区13 小时前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
阿里云·云原生·serverless·函数计算
赵渝强老师13 小时前
【赵渝强老师】Docker容器的资源管理机制
linux·docker·容器·kubernetes
能不能别报错15 小时前
K8s学习笔记(十五) pause容器与init容器
笔记·学习·kubernetes
稚辉君.MCA_P8_Java15 小时前
kafka解决了什么问题?mmap 和sendfile
java·spring boot·分布式·kafka·kubernetes
乄bluefox15 小时前
保姆级docker部署nacos集群
java·docker·容器
每天进步一点_JL15 小时前
Docker 是什么?
后端·docker·容器
一叶飘零_sweeeet16 小时前
从 0 到 1 掌控云原生部署:Java 项目的 Docker 容器化与 K8s 集群实战指南
docker·云原生·kubernetes·项目部署