必问K8S面试题:Pod 处于 Pending 状态的原因

Kubernetes Pod 处于 Pending 状态的原因

微信关注<运维爱背锅>用通俗易懂的方式教你运维!

这又是一道必问的K8S面试题,大家面试的时候能说出6-7点就基本没啥问题了~

当你发现你的 Kubernetes Pod 一直处于 Pending 状态时,不要慌张!它可能只是在“思考人生”,或者遇到了一些小麻烦。下面列出了所有可能导致 Pod 处于 Pending 状态的原因,附带一些幽默的解释,帮助你快速理解~

1. 资源不足(Insufficient Resources)

  • 原因: 集群中没有足够的 CPU 或内存资源来调度 Pod。比如,pod设置request资源请求,但是不够资源。
  • 幽默版: 你的 Pod 想要一个豪华套房,但集群只剩下地下室了。谁不想住得好一点呢?

2. 节点选择器不匹配(Node Selector Mismatch)

  • 原因: Pod 的 nodeSelectoraffinity 规则没有匹配到任何节点。
  • 幽默版: 你的 Pod 在 Tinder 上设定了“必须喜欢猫”的条件,结果发现集群里全是狗党。

3. 污点和容忍度不匹配(Taints and Tolerations Mismatch)

  • 原因: 节点上有污点(Taint),而 Pod 没有对应的容忍度(Toleration)。
  • 幽默解释: 节点说:“我有洁癖,不欢迎任何人!” Pod 回应:“但我有消毒水啊!” 节点:“那也不行!”

4. 持久卷声明未绑定(Persistent Volume Claim Not Bound)

  • 原因: Pod 需要的持久卷声明(PVC)还没有绑定到持久卷(PV)。
  • 幽默解释: 你的 Pod 想要一个硬盘,但硬盘还在快递路上。耐心等待吧!

5. 镜像拉取失败(Image Pull Failed)

  • 原因: Pod 无法从镜像仓库拉取所需的容器镜像。
  • 幽默解释: 你的 Pod 去超市买食材,结果发现超市关门了。看来今晚得饿肚子了。

6. 调度器未运行(Scheduler Not Running)

  • 原因: Kubernetes 调度器(Scheduler)没有运行或出现故障。
  • 幽默解释: 你的 Pod 在等公交车,结果发现司机今天请假了。看来得走路了。

7. 节点不可用(Node Not Ready)

  • 原因: 所有节点都处于 NotReady 状态,无法调度 Pod。
  • 幽默解释: 你的 Pod 想去参加派对,结果发现所有派对场地都关门了。真扫兴!

8. Pod 的优先级和抢占(Pod Priority and Preemption)

  • 原因: 高优先级的 Pod 抢占了资源,导致低优先级的 Pod 无法调度。
  • 幽默解释: 你的 Pod 在排队买限量版球鞋,结果被 VIP 插队了。气不气?

9. Pod 的拓扑约束(Pod Topology Spread Constraints)

  • 原因: Pod 的拓扑约束(如跨区域、跨节点等)无法满足。
  • 幽默解释: 你的 Pod 想要在多个城市开分店,结果发现只有一个小镇有空位。看来得重新规划了。

10. Pod 的亲和性规则不满足(Pod Affinity Rules Not Met)

  • 原因: Pod 的亲和性规则(如必须和某个 Pod 在同一节点)无法满足。
  • 幽默解释: 你的 Pod 想要和好朋友住在一起,结果发现好朋友已经搬走了。真遗憾!

11. Pod 的反亲和性规则冲突(Pod Anti-Affinity Rules Conflict)

  • 原因: Pod 的反亲和性规则(如不能和某个 Pod 在同一节点)导致无法调度。
  • 幽默解释: 你的 Pod 不想和前男友住在同一个小区,结果发现整个城市都住满了。真尴尬!

12. Pod 的资源请求过大(Pod Resource Requests Too High)

  • 原因: Pod 请求的资源(CPU、内存等)超过了集群的可用资源。
  • 幽默解释: 你的 Pod 想要一个私人游泳池,结果发现整个小区的水都不够用。看来得降低要求了。

13. Pod 的端口冲突(Port Conflict)

  • 原因: Pod 请求的端口在目标节点上已经被占用。
  • 幽默解释: 你的 Pod 想要住进一间海景房,结果发现所有的窗户都已经被别人占了。真倒霉!

14. Pod 的 SecurityContext 限制(SecurityContext Restrictions)

  • 原因: Pod 的 SecurityContext 配置(如 runAsNonRoot)导致无法在目标节点上运行。
  • 幽默解释: 你的 Pod 想要以管理员身份运行,结果发现节点只允许普通用户。看来得低调一点了。

15. Pod 的 Init Container 未完成(Init Container Not Completed)

  • 原因: Pod 的 Init Container 还没有成功完成,导致 Pod 无法进入运行状态。
  • 幽默解释: 你的 Pod 在等朋友收拾行李,结果朋友一直在磨蹭。看来得耐心等待了。

16. Pod 的依赖服务未就绪(Dependent Service Not Ready)

  • 原因: Pod 依赖的服务(如数据库、消息队列等)还没有就绪。
  • 幽默解释: 你的 Pod 想要点外卖,结果发现餐厅还没开门。看来得自己做饭了。

17. Pod 的 ConfigMap 或 Secret 未找到(ConfigMap or Secret Not Found)

  • 原因: Pod 依赖的 ConfigMapSecret 不存在或无法访问。
  • 幽默解释: 你的 Pod 想要看剧本,结果发现剧本被导演藏起来了。看来得即兴发挥了。

18. Pod 的命名空间配额限制(Namespace Quota Exceeded)

  • 原因: Pod 所在的命名空间资源配额已用完,无法创建新的 Pod。
  • 幽默解释: 你的 Pod 想要租一间办公室,结果发现整个写字楼都被别人租光了。看来得换个地方了。

19. Pod 的容器镜像拉取策略(Image Pull Policy)

  • 原因: Pod 的容器镜像拉取策略(如 Always)导致每次都要重新拉取镜像,但拉取失败。
  • 幽默解释: 你的 Pod 每次都要去超市买新鲜的食材,结果今天超市关门了。看来得改改习惯了。

20. Pod 的调度器配置错误(Scheduler Configuration Error)

  • 原因: 调度器的配置错误导致无法正确调度 Pod。
  • 幽默解释: 你的 Pod 在等导航指示,结果导航系统出错了。看来得靠自己找路了。

希望这份清单能帮助你快速定位 Pod 处于 Pending 状态的原因。记住,Kubernetes 的世界充满了挑战,但也充满了乐趣!祝你面试好运!

你可能感兴趣的:(K8S面试题,kubernetes,容器,云原生,k8s,面试)