最近我们的 GKE 环境被暂停。重新激活帐户后,Kubernetes 无法正常工作,因为 3 个服务器中只有 1 个可用。两个区域报告了 ZONE_RESOURCE_POOL_EXHAUSTED 30 分钟,直到我们添加了新的节点池。
Google 告诉我们这是正常现象,我们应该使用预留实例。我怀疑预留实例是否能解决这个问题,因为我确信当帐户被暂停时预留实例会被终止。
我很难相信创建 GKE 集群时需要预留实例。
我关心的不是服务器为什么会宕机,而是 GKE 在没有人工干预的情况下无法恢复。如果需要,我希望 GCP 控制台能够自动执行此操作。这就是我向 Server Fault 专家咨询的原因:
- 我是否应该创建一个 Kubernetes 集群,然后单独保留实例?
- 预留实例是否有助于解决服务器崩溃、更新或机器不可用的任何正常操作等问题。
- Google 表示“通过预留,95% 的虚拟机可在 120 秒内启动”。这听起来不像是实例被预留了。这些实例真的被预留了吗?还是 GKE 有 5% 的可能性无法自行恢复?
- 每个 VM 实例(不仅仅是 GKE)是否都应同时具有“实例组”和“预留实例”?
- 还有其他解决方案吗?
我真的不想将集群移回 AWS,因为 GKE 功能非常丰富。但目前我对 GKE 不太有信心。非常感谢您的反馈。
编辑 17/2/2024
我想我应该简化我的问题,因为我可能没有很好地描述这个问题。
Google 告诉我使用预留实例来避免 ZONE_RESOURCE_POOL_EXHAUSTED。
预留实例听起来就像 Google 以 95% 的概率在 2 分钟内为您保留一台机器。对我来说,预留实例听起来就像关闭和打开虚拟机时的确定性。
如果我不停止实例,假设 Google 中出现机器故障或恢复的虚拟机中断,预留实例是否会修复 ZONE_RESOURCE_POOL_EXHAUSTED 问题?
编辑 27/3/2024
在与 Google 支持人员沟通了 2 个月并让问题升级了 3 次之后,我仍无法解决这个问题。
除了预留实例之外,Google 支持人员无法为区域 GKE 集群找到 ZONE_RESOURCE_POOL_EXHAUSTED 的解决方案。但是,他们只能确认我们只能保证(没有 SLA)95% 的时间可以使用实例,并且无法确认如果有新实例可用,我们是否会优先获得新实例。
我觉得 Google 支持人员在这件事上付出了很大努力,并为我们第一次见面时准备不足而道歉。所以最后我对他们的服务还是很满意的。最初的支持不会超出公开信息的范围,但我对升级后的回复感到失望,这些回复完全没用。