VM会填充辅助IP范围吗?

时间:2018-05-23 00:02:49

标签: google-cloud-platform terraform

我正在尝试在GCP中设计非常大规模的网络,特别是将this network framework从AWS移植到GCP。

在AWS中,子网与特定的可用区绑定。在GCP中,子网跨越所有可用区域。

locals {
  # for network 0, layer index 0, occupy 10.0.0.0-10.0.9.255
  primary_ip_range = "10.${var.network_id}.${var.layer_index * 10}.0/23"
  secondary_ip_ranges = [
    { range_name = "${var.name}-0", ip_cidr_range = "10.${var.network_id}.${(var.layer_index * 10) + 2}.0/23" },
    { range_name = "${var.name}-1", ip_cidr_range = "10.${var.network_id}.${(var.layer_index * 10) + 4}.0/23" },
    { range_name = "${var.name}-2", ip_cidr_range = "10.${var.network_id}.${(var.layer_index * 10) + 6}.0/23" },
    { range_name = "${var.name}-3", ip_cidr_range = "10.${var.network_id}.${(var.layer_index * 10) + 8}.0/23" },
  ]
}

resource "google_compute_subnetwork" "default" {
  region = "${var.region}"

  name = "${var.name}"
  description = "The ${title(var.name)} layer subnet in the ${var.zone} Titan network."
  network = "${var.vpc_id}"
  private_ip_google_access = true

  ip_cidr_range = "${local.primary_ip_range}"
  secondary_ip_range = ["${local.secondary_ip_ranges}"]
}

Google documentation似乎将这些辅助CIDR块称为"别名范围"要分配给在VM上运行的容器。但是,我对这些辅助CIDR块如何与普通虚拟机进行交互更感兴趣。

如果我耗尽主CIDR块(10.0.0.0/23),主机是否会溢出到另一个CIDR块?或者,主要范围是网络中虚拟机使用的唯一范围吗?

  

注意:在AWS实施中,如上所述,Titan允许1到5个相邻的/23,受到该地区AWS可用区数量的限制。

     

这给出了"层中512到2560个可用主机,"这是用于类似目的的子网的逻辑分组。在AWS中,可以轻松地使用多个子网,在它们之间展开实例或having an autoscaling group或在所有子网中均衡地平衡负载均衡器节点。

     

在GCP中,您可以only specify one zone for a managed instance group,因此想法似乎是您应该在子网内的每个区域中拥有一个托管实例组。

     

困惑了吗?我试图将概念从AWS转换为GCP,而基础部分则不同,所以我试图尽可能合理地映射事物。

1 个答案:

答案 0 :(得分:0)

不幸的是,VM仍需要主范围内的IP地址。如果地址用完了,则可以在该范围内按照[1]下文档中的说明调整子网大小。

[1] https://cloud.google.com/sdk/gcloud/reference/compute/networks/subnets/expand-ip-range