如何解决如何使用带有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"]
}
}
解决方法
一个空的access_config块将为您的实例分配一个外部临时IP。
network_interface {
network = "default"
access_config {}
}
,
好像您需要在“ network_interface”下指定“ access_config”,才能根据terraform中的this example将外部(公共)IP分配给GCE实例。
Google Cloud Platform的Compute Engine支持两种类型的external IP addresses:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。