我已经使用 Web 界面在 Google Compute Engine 中创建了一些实例。我想开始在命令行上执行此操作,以便我可以创建更多实例并自动化该过程。Web 界面告诉我创建实例时可以使用什么命令。我请求一个永久的公共 IP 地址,我可以看到有效的命令,但我如何知道可以请求哪些地址?例如,我使用命令“gcloud compute ...instances create“serverA”.. --address 1.2.3.4 ...”创建了 serverA。我重用了之前分配的地址,但我认为我很幸运它起作用了,当我想在命令行上创建更多实例时,我无法猜测要使用哪些其他 IP 地址。有没有办法查询可用的地址?谢谢。
汤姆
答案1
更新
第二种方法是使用部署管理器。您可以拥有一个配置文件,在其中创建 IP 资源。在同一个文件中,您可以指定部署分配了该 IP 的 VM。
即运行
gcloud 部署管理器部署创建 testdeploy --config=myconf.yaml
其中 myconf.yaml 文件内容是
resources:
- name: test-rabbitmq-ip
type: compute.v1.address
properties:
region: us-central1
- type: compute.v1.instance
name: vm-my-first-deployment1
properties:
zone: us-central1-f
machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20160923
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
# Access Config required to give the instance a public IP address
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
natIP: $(ref.test-rabbitmq-ip.address)
答案2
您可以保留静态 IP,并使用 gcloud 命令创建带有 --address 标志的实例,该标志指向保留的静态 IP,因为无法查询可用地址。请记住,未附加到任何实例的保留静态 IP 将发生费用。
更新: 1. 您需要通过运行以下命令来保留一个静态IP:
gcloud compute --project "YOUR_PROJECT_ID" addresses create "STATIC_IP_NAME" --region "YOUR_REGION"
- 运行以下命令,使用您刚刚保留的静态 IP 创建新实例:
gcloud compute --project“YOUR_PROJECT_ID”实例创建“INSTANCE_NAME”--zone“YOUR_ZONE”--machine-type“n1-standard-1”--network“YOUR_NETWORK_NAME”--address STATIC_IP_NAME--can-ip-forward--maintenance-policy“MIGRATE”--scopes“https://www.googleapis.com/auth/cloud-platform“ - 图像 ”https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20151104“ --启动磁盘大小 "10" --启动磁盘类型 "pd-standard" --启动磁盘设备名称 "DISK_NAME"
在这种情况下,我选择了 debian-8 图像和 n1-standard-1 机器类型,当然您可以根据需要进行更改。