Kube Deployment Generation Mismatch

KubeDeploymentGenerationMismatch #

含义 #

Deployment 的 generation 不匹配,通常是 Deployment 更新失败了但还没有回滚导致。

影响 #

服务性能下降,甚至不可用。

诊断 #

消息详情/标签中包含 Deployment 的名称和 Namespace 信息。

参考失败的 Deployment

  • 检查回滚历史记录 kubectl -n $NAMESPACE rollout history deployment $NAME
  • 检查滚动状态是否处于暂停状态。
  • 通过 kubectl -n $NAMESPACE describe deployment $NAME 检查部署状态。
  • 检查声明的副本数目。
  • 检查新的 Pods 是否 crash。
  • 检查属于这个 Deployment 下副本集的 Pods 状态。
  • 检查 Pod 模板参数配置:
    • priority 优先级配置。可能一些重要性更高的 Pods 占用了资源,导致它无法调度。
    • resources 资源配置。比如它尝试使用不可用的 GPU 资源,但这些资源限制在特定的 GPU 节点上。
    • 亲和性规则。可能由于亲和性以及节点不足,导致它无法调度。
    • 终止宽限期。Pod 终止花费时间较长。
  • 检查 HPA 是否正常触发。