【发布时间】:2019-02-17 17:19:38
【问题描述】:
在过去的 1 个月中,我们的 GKE 集群上发生了 4 个 AUTO_REPAIR_NODES 事件(由命令 gcloud container operations list 显示)。 node-auto-repair 的后果是该节点被重新创建并附加一个新的外部 IP,而新的外部 IP 未被第三方服务列入白名单,最终导致在该新节点上运行的服务失败。
我注意到我们在 Kubernetes 集群中启用了“自动节点修复”,我很想禁用它,但在我这样做之前,我需要了解更多有关情况。
我的问题是:
- 首先导致节点不健康的常见原因有哪些?我知道这篇文章https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair#node_repair_process 说,“节点在给定时间阈值的连续检查中报告NotReady 状态”将触发自动修复。但是什么会导致节点变为NotReady?
- 我也知道这篇文章https://kubernetes.io/docs/concepts/architecture/nodes/#node-status 提到了节点状态的完整列表:{OutOfDisk, Ready, MemoryPressure, PIDPressure, DiskPressure, NetworkUnavailable, ConfigOK}。我想知道,如果某个节点的 {OutOfDisk, MemoryPressure, PIDPressure, DiskPressure, NetworkUnavailable} 中的任何一个变为 true,该节点会变为 NotReady 吗?
- 在集群中禁用“自动节点修复”后会产生哪些负面影响? 我基本上想知道我们是否会遇到比自动修复的节点和新连接的未列入白名单的 IP 更糟糕的情况。一旦“自动节点修复”被禁用,那么对于在不健康节点上运行且本应自动修复的 Pod,Kubernetes 是否会在其他节点上创建新的 Pod?
【问题讨论】:
-
你有没有考虑过这样的事情:serverfault.com/questions/907189/…
标签: kubernetes google-cloud-platform google-kubernetes-engine