如何使用带有Terraform的公共IP创建GCP实例

问题描述

我需要在gcp中使用公共IP(实例可以自己随机选择一个)创建VM实例,而无需显式定义一个。

那我该怎么办呢?

这是gcloud命令,我可以用来完成此操作(使用自动分配的公共IP创建虚拟机实例)

gcloud compute instances create controller-1 \
    --async \
    --boot-disk-size 200GB \
    --can-ip-forward \
    --image-family ubuntu-2004-lts \
    --image-project ubuntu-os-cloud \
    --machine-type e2-standard-2 \
    --private-network-ip 10.240.0.10 \
    --scopes compute-rw,storage-ro,service-management,service-control,logging-write,monitoring \
    --subnet kubernetes \
    --tags kubernetes-the-hard-way,controller

上面的命令将创建一个同时具有内部IP 10.240.0.10和具有一些随机选择的IP地址的公共IP的虚拟机。

所以我想通过terraform

达到相同的目标

这是我的terraform代码。但是我该怎么办呢?

resource "google_compute_instance" "controllers" {
  name         = "controller-0"
  machine_type = "e2-standard-2"
  zone         = var.zone

  can_ip_forward = true



  tags = ["kubernetes-the-hard-way","controller"]
  

  boot_disk {
    initialize_params {
      image = "ubuntu-2004-focal-v20200720"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.kubernetes.name
    network_ip = "10.240.0.10"  // private ip but how to assign a public ip (randomly)  
  }

  service_account {
    scopes = ["compute-rw","storage-ro","service-management","service-control","logging-write","monitoring"]
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)