【发布时间】:2018-11-01 20:00:27
【问题描述】:
我正在尝试在 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 块将如何与普通 VM 交互。
如果我用尽了主 CIDR 块 (10.0.0.0/23),主机会溢出到另一个 CIDR 块吗?或者,主要范围是网络中虚拟机使用的唯一范围吗?
注意:在 AWS 实施中,Titan 允许 1 到 5 个相邻的
/23s,如上所述,受区域中 AWS 可用区数量的限制。这在“层”中提供了 512 到 2560 个可用主机,这是用于类似目的的子网的逻辑分组。在 AWS 中,很容易使用多个子网,在它们之间展开实例或having an autoscaling group 或负载均衡器将节点均匀地放置在所有子网中。
在 GCP 中,您可以only specify one zone for a managed instance group,因此您的想法似乎是您应该在子网中的每个区域拥有一个托管实例组。
困惑了吗?我正在尝试将概念从 AWS 转换为 GCP,而底层部分不同,因此我试图尽可能合理地映射事物。
【问题讨论】:
标签: google-cloud-platform terraform