google-compute-engine - 同时创建多个 GCE VM 的脚本

标签 google-compute-engine

我有一个基本的 SH 脚本,用于在 GCP 上创建多个虚拟机,它工作正常,但按顺序进行。当虚拟机数量超过 4 或 5 时,就会造成严重的时间延迟。我注意到,在 Dataflow 或 Dataproc 等平台中,几乎同时创建任意数量的虚拟机。有没有办法模仿 GCE 中的功能? (毕竟,无论如何,这些似乎都是基本的 GCE 机器)。

现在我使用以下(简化的)脚本:

vms=4
for i in `seq 1 $vms`
do

    gcloud compute --project PROJECT disks create VM"$i" --size 50 --zone ZONE --type "pd-ssd"
    gcloud beta compute --project=PROJECT instances create VM"$i" --zone=ZONE --machine-type=MACHINE_TYPE --subnet=default --maintenance-policy=MIGRATE --scopes=https://www.googleapis.com/auth/cloud-platform --disk=name=VM"$i",device-name=VM"$i",mode=rw,boot=yes,auto-delete=yes

done

感谢您的建议!

最佳答案

您可以通过 creating a group of managed VMs 更快地创建多个类似的虚拟机.

首先,create an instance template ,指定您需要的虚拟机配置:

gcloud compute instance-templates create TEMPLATE_NAME \
  --machine-type MACHINE_TYPE \
  --image-project IMAGE_PROJECT \  # project where your boot disk image is stored
  --image IMAGE \  # boot disk image name
  --boot-disk-type pd-ssd \
  --boot-disk-size 50GB \
  --boot-disk-auto-delete \
  --boot-disk-device-name DEVICE_NAME \  # boot disk device name, the same for all VMs
  --subnet default \ 
  --maintenance-policy MIGRATE \
  [...]

注意:

  • 您将启动磁盘指定为实例模板的一部分。
  • 无需为实例模板指定区域。您将在创建实例组时指定所需的区域。
  • 组中所有虚拟机的启动磁盘的设备名称相同。这不是冲突,因为特定磁盘的设备名称是 seen from guest OS每个特定虚拟机的并且是该虚拟机本地的。
  • 其他参数与创建虚拟机时相同。

然后,根据此模板创建一组 4 个(或 100 个或 1000 多个)虚拟机:

gcloud compute instance-groups managed create GROUP_NAME \
  --zone ZONE \
  --template TEMPLATE_NAME \ # name of the instance template that you have just created
  --size 4 \ number of VMs that you need to create

该小组根据您的模板创建多个类似的虚拟机,速度比您通过迭代创建独立虚拟机快得多。

关于google-compute-engine - 同时创建多个 GCE VM 的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969240/

相关文章:

ruby - 如何使用 vagrant 在 GCE 实例上允许 HTTP 流量和端口 27017?

tomcat - java进程在f1 micro中死亡

jenkins - Kubernetes Jenkins Deployment API版本不匹配

kubernetes - 有没有办法不使用 GKE 的标准负载均衡器?

google-cloud-platform - 谷歌云 TPU 出现紧急错误

google-app-engine - 如何在日志查看器中查看托管 VM 的 JSON 日志?

google-compute-engine - 默认情况下,kubectl 未安装在 GCE 上

centos - 在 Google Compute Engine 上配置 Plesk 面板

github - 在 google 计算引擎上动态部署 Jenkins slaves 以进行 github 提交

google-compute-engine - 从Cloud Compute实例连接到Kubernetes服务