You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform为GCP云实例配置区域静态IPv6地址

解决Terraform在GCP为VM配置静态IPv6的问题

核心问题原因

GCP的静态IPv6地址属于全局资源,而你当前使用的google_compute_address仅支持创建区域级IPv4地址,无法处理IPv6资源,这就是无法通过该资源配置静态IPv6的根本原因。

解决方案步骤

要实现静态IPv6绑定,需要使用google_compute_global_address资源创建全局静态IPv6地址,再将其关联到VM实例的IPv6访问配置中。

修改后的完整代码

# Create VPC WITH IPV6 
resource "google_compute_network" "vpc_network" {
  name                    = "${var.project_name}-${var.deploy_env[var.workspace]}-vpc"
  auto_create_subnetworks = false
  routing_mode            = "REGIONAL"
  mtu                     = 1460
}

# create subnetwork with ipv6 support
resource "google_compute_subnetwork" "vpc_subnetwork" {
  name              = "${var.project_name}-${var.deploy_env[var.workspace]}-subnetwork"
  ip_cidr_range     = "10.156.0.0/20"
  region            = var.region
  stack_type        = "IPV4_IPV6"
  ipv6_access_type  = "EXTERNAL"
  network           = google_compute_network.vpc_network.id
}

# create Instance
resource "google_compute_instance" "instance" {
  name = "${var.project_name}-${var.deploy_env[var.workspace]}-monitoring"
  machine_type = "g1-small"
  zone = "${var.zone}"
  tags = ["http-server", "https-server"]

  boot_disk {
    initialize_params {
      image = "image"
    }
    device_name = "${var.project_name}-${var.deploy_env[var.workspace]}-monitoring"
    auto_delete = true
    mode        = "READ_WRITE"
  }

  scheduling {
    automatic_restart   = true
    on_host_maintenance = "MIGRATE"
    provisioning_model  = "STANDARD"
  }

  network_interface {
    network     = google_compute_network.vpc_network.id
    subnetwork  = google_compute_subnetwork.vpc_subnetwork.id
    stack_type  = "IPV4_IPV6"

    access_config {
      // 绑定静态IPv4
      nat_ip        = google_compute_address.external_ipv4_vip1.address
      network_tier  = "PREMIUM"
    }
    ipv6_access_config {
      // 绑定静态IPv6
      nat_ip        = google_compute_global_address.external_ipv6_vip1.address
      network_tier  = "PREMIUM"
    }
  }
}

# 静态IPv4地址(区域资源)
resource "google_compute_address" "external_ipv4_vip1" {
  address_type = "EXTERNAL"
  name         = "${var.project_name}-${var.deploy_env[var.workspace]}-ipv4-vip1"
  network_tier = "PREMIUM"
  region       = var.region
}

# 静态IPv6地址(全局资源)
resource "google_compute_global_address" "external_ipv6_vip1" {
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
  name         = "${var.project_name}-${var.deploy_env[var.workspace]}-ipv6-vip1"
  network_tier = "PREMIUM"
}

关键注意事项

  • 确保子网的stack_type为IPV4_IPV6且ipv6_access_type为EXTERNAL(你已正确配置),这是VM获取外部IPv6地址的前提。
  • google_compute_global_address用于创建全局静态IPv6,必须显式指定ip_version = "IPV6"。
  • 在VM的ipv6_access_config块中通过nat_ip字段绑定已创建的静态IPv6地址,逻辑与IPv4的绑定完全一致。

内容的提问来源于stack exchange,提问作者Marco Ferrara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:53:09