我从上个月开始就尝试在 GCP 上创建一个虚拟机,但一直未能成功。
我收到以下错误-
区域“projects/xxxxxxxxxxx/zones/asia-south1-c”没有足够的资源来满足请求。请尝试其他区域,或稍后重试。
答案1
首先,您这边没有错误。这种情况时有发生,通常不需要花太长时间即可将资源添加到区域并修复它。
如果您急需资源,您可以使用不同的区域(如果可以)。
编辑 ZONE_RESOURCE_POOL_EXHAUSTED
错误意味着您在该特定区域遇到了临时资源缺货问题。请查看此邮政经过保罗·纳什,解释了 Google Cloud Platform 的资源缺货问题。
建议的解决方法是尝试不同的区域或稍后检查该特定区域。
如果您需要为特定区域/地区请求资源,我建议您按照以下步骤操作:
- 在 开票Google 问题追踪器(更多信息这里)
- 接触Google Cloud 支持(如果您没有支持合同,则通过电子邮件)
问题确认:您可以使用以下查询检查-> ->处是否有ZONE_RESOURCE_POOL_EXHAUSTED
错误:Stackdriver
Logging
Logs Viewer
resource.type="gce_instance"
"ZONE_RESOURCE_POOL_EXHAUSTED"
您可以在以下位置找到有关如何使用高级日志查询的更多信息文档。
编辑2有关此问题的更多信息,您可以在文档:
如果您在请求新资源时收到资源错误(例如 ZONE_RESOURCE_POOL_EXHAUSTED 或 ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS),则表示该区域当前无法满足您的请求。
以及可能的解决方案:
- 由于这种情况是暂时的,并且可能根据需求波动而频繁变化,请稍后再试您的请求。
- 如果可能,请尝试在该区域的另一个可用区或其他区域创建资源。
- 如果可能,请更改您请求的虚拟机的形状。获取较小的机器类型比获取较大的机器类型更容易。更改您的请求(例如减少 GPU 数量或使用具有较少内存或 vCPU 的自定义虚拟机)可能会让您的请求继续进行。
- 使用Compute Engine 预留在区域内预留资源,以确保在需要时可以获得所需的资源。
- 如果您尝试创建可抢占实例,请记住可抢占虚拟机是备用容量,因此在高峰需求期可能无法获得。
- 如果您在请求新资源时收到
notFound
或does not exist
in zone 错误,则表示该区域不提供您请求的资源或机器类型。请参阅区域和可用区了解每个区域有哪些可用功能。
答案2
错误消息“区域‘projects/[...]’没有足够的资源来满足请求。请尝试其他区域,或稍后重试。”始终是指区域中的资源短缺。
正如 @Serhii Rohoza 所说,我们建议在多个区域或地区部署和平衡您的工作负载,以降低发生中断的可能性。在这种情况下,最好的解决方法是在另一个区域中创建您的实例或稍后再试。要在另一个区域中创建您的实例,您需要先创建快照,然后使用您创建的快照创建新实例。
脚步 :
进入计算引擎并创建实例的快照
使用您创建的快照创建一个新实例。
选择快照并在不同区域创建实例
现在我们需要将磁盘移至单独的区域。检查您以前的区域名称和磁盘名称。为此,请单击实例名称并向下滚动以查看磁盘名称。
从上一个实例分离启动磁盘。为此,请编辑实例并单击 x 图标以分离磁盘。
将该磁盘移动到不同的区域。运行以下命令将磁盘移动到不同的区域
$ gcloud compute disks move <disk-name> --zone=<source-zone> --destination-zone=<destination-zone>
现在停止新创建的机器。编辑新机器并转到启动盘,分离先前创建的磁盘。
将旧磁盘添加为启动盘。
启动服务器。
现在您必须将之前创建的静态 IP 分配给新机器。转到 VPC 网络内的 IP 设置。单击更改并将 IP 分配给新机器。
参考资源可用性有关 ZONE_RESOURCE_POOL_EXHAUSTED 的信息。