前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >崩溃!K8s Pod卡在Pending状态?8大“坑爹”原因全解析!(附终极排查指南)

崩溃!K8s Pod卡在Pending状态?8大“坑爹”原因全解析!(附终极排查指南)

作者头像
linus_lin
发布2025-02-12 15:37:18
发布2025-02-12 15:37:18
17600
代码可运行
举报
文章被收录于专栏:SRE云原生实践之路
运行总次数:0
代码可运行

导语:💡 今天突然被同事灵魂拷问:“Pod一直Pending是咋回事啊?”我虎躯一震:这题我会啊!但转念一想,这简直是K8s界的“月经问题”!连夜肝出这篇《Pod Pending八宗罪》,看完直接让Bug原地消失!👇

🔥 1. 资源不足:你的集群被“榨干”了吗?

  • 节点资源告急:CPU、内存、GPU被“吃干抹净”,Pod只能干瞪眼!
  • Pod是“资源黑洞”requests设置太夸张,根本找不到接盘侠节点!
  • 资源碎成渣:就像双十一抢购,明明还剩1毛钱红包,但凑不够满减!

🛠️ 破局姿势

代码语言:javascript
代码运行次数:0
复制
 kubectl describe node  # 看哪个节点在“摸鱼”  
 kubectl top nodes      # 谁在偷偷“吃资源”一目了然!  

💡 狠招:加机器!加配置!或者让Pod“少吃多餐”(调低requests)


🔥 2. 标签对不上:K8s版“相亲翻车现场”

  • NodeSelector太挑剔:Pod非要找带“高富帅”标签的节点,结果全集群都是“普信男”!
  • Taint劝退:节点写着“生人勿近”,Pod却不会“死缠烂打”(没配置Toleration)

🛠️ 破局姿势

代码语言:javascript
代码运行次数:0
复制
 kubectl describe node | grep -E "Labels|Taints"  # 看节点“相亲条件”  
 kubectl edit pod xxx  # 给Pod加“舔狗”技能(Toleration)  

🔥 3. 存储卡脖子:你的PVC在“等一个永远不来的人”

  • PVC变望夫石:PV迟迟不出现,StorageClass还在装死!
  • 云盘炸了:AWS EBS/GCE PD突然摆烂,直接上演“存储消失术”!

🛠️ 破局姿势

代码语言:javascript
代码运行次数:0
复制
 kubectl get pvc -o wide  # 看哪个PVC在“守活寡”  
 kubectl describe storageclass  # 检查“红娘”是否在线  

🔥 4. 镜像拉取翻车:程序员的社死瞬间

  • 镜像名写错:把nginx写成ngnix,堪比把女朋友名字叫错!
  • 私仓密码错imagePullSecrets配了个寂寞,仓库直接甩你一脸401!
  • 网速像蜗牛:10GB的镜像用3G网下载,等到天荒地老!

🛠️ 破局姿势

代码语言:javascript
代码运行次数:0
复制
 kubectl describe pod | grep -i "failed to pull"  # 看镜像怎么作妖  

💡 保命技巧:本地先docker pull测试,别让K8s背锅!


🔥 5. 调度器摆烂:K8s的“大脑死机了”

  • 调度器躺平:kube-scheduler进程偷偷摸鱼!
  • 策略太奇葩:亲和性设置成“必须和仇人在同一节点”,直接死锁!

🛠️ 破局姿势

代码语言:javascript
代码运行次数:0
复制
 kubectl get pod -n kube-system | grep scheduler  # 看调度器是否在装死  
 kubectl logs kube-scheduler-xxx -n kube-system  # 查它的“聊天记录”  

🔥 6. 节点在“装死”

  • 节点NotReady:kubelet崩了?硬盘炸了?SSH连不上?
  • 资源过载:节点内存泄漏像黄河决堤,直接拖垮整个集群!

🛠️ 核武器

代码语言:javascript
代码运行次数:0
复制
 kubectl drain <node> --force  # 强制“拔网线”  
 kubectl delete node <node>    # 直接“踢出群聊”  

📌 终极排查六连招(建议收藏!)

1️⃣ 看Pod心电图

代码语言:javascript
代码运行次数:0
复制
 kubectl describe pod | grep Events -A20  

2️⃣ 查节点健康度

代码语言:javascript
代码运行次数:0
复制
 kubectl get nodes --show-labels  

3️⃣ 扒光存储看光光

代码语言:javascript
代码运行次数:0
复制
 kubectl get pvc,pv,storageclass  

4️⃣ 调度器抓现行

代码语言:javascript
代码运行次数:0
复制
 kubectl logs -n kube-system kube-scheduler-xxx  

5️⃣ 镜像仓库大拷问

代码语言:javascript
代码运行次数:0
复制
 kubectl get events | grep -i "pull"  

6️⃣ 资源审计三件套

代码语言:javascript
代码运行次数:0
复制
 kubectl top nodes && kubectl top pods  

文末暴击:“别问我为什么知道这么多坑——都是凌晨三点改Bug的血泪史啊!💔”转发保平安,下次Pod再Pending,直接把这篇文章甩他脸上!🤯

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE云原生实践之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🔥 1. 资源不足:你的集群被“榨干”了吗?
  • 🔥 2. 标签对不上:K8s版“相亲翻车现场”
  • 🔥 3. 存储卡脖子:你的PVC在“等一个永远不来的人”
  • 🔥 4. 镜像拉取翻车:程序员的社死瞬间
  • 🔥 5. 调度器摆烂:K8s的“大脑死机了”
  • 🔥 6. 节点在“装死”
  • 📌 终极排查六连招(建议收藏!)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档