故障分析 | Kubernetes 故障诊断流程

本文提供了一套针对Kubernetes中Pod、Service和Ingress故障的诊断流程。从检查Pod的状态开始,如PENDING、RUNNING、CrashLoopBackOff等,到Service的Endpoints和Selector匹配,再到Ingress的配置和外部访问,每一步都给出了详细的排查步骤和可能的解决方案,旨在帮助用户解决集群操作中的常见问题。

一、本文概述及主要术语

1.1 概述

本文基于 Pod 、Service 和 Ingress 三大模块进行划分,对于 Kubernetes 日常可能出现的故障问题,提供了较为具体的排查步骤,并附上相关解决方法或参考文献。

1.2 主要术语

  1. Pod: Kubernetes 中创建和管理的、最小的可部署的计算单元。是一组(一个或多个) 容器;这些容器共享存储、网络、以及怎样运行这些容器的声明。

  2. Port-forward: 通过端口转发映射本地端口到指定的应用端口。

  3. Service: 一个 Kubernetes 的 Service 是一种抽象,它定义了一组 Pods 的逻辑集合和一个用于访问它们的策略 - 有时被称为微服务。

  4. Ingress: 提供了集群外部到内部 HTTP 和 HTTPS 服务的路由通信,流量路由通过 Ingress 资源上定义的规则控制。

二、故障诊断流程

2.1 Pods 模块检查

  • 以下流程若成功则继续往下进行,若失败则根据提示进行跳转。

2.1.1 检查是否有 pod 处于 PENDING 状态

  1. kubectl get pods:如果有 pod 处于 PENDING 状态则往下看,否则前往 2.1.5 。

[root@10-186-65-37 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-deploy-55b54d55b8-5msx8 0/1 Pending 0 5m
 

2 kubectl describe pod <pod-name>:若正确输出指定的一个或多个资源的详细信息,则判断是否集群资源不足,若不足则进行拓展,否则前往 2.1.2 。

2.1.2 检查是否触发 ResourceQuota limit

  1. kubectl describe resourcequota -n <namespace>:

 

2  如有限制则进行相应资源释放或拓展,参考:https://kubernetes.io/zh/docs/concepts/configuration/manage-resources-containers/#extended-resources

否则前往 2.1.3

2.1.3 检查是否有 PVC 处于 PENDING 状态

  1. 持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先供应,或者使用存储类(Stor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值