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)等来获取和监控。通过对这些指标的持续监控和分析,可以及时发现和解决集群中的问题,确保集群的稳定性和高可用性。


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


相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun3 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿3 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl3 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、3 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove3 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21