【发布时间】:2021-01-24 05:29:03
【问题描述】:
我们一次性配置了相当大的一组服务器(每个环境每个部署 57 个)。我们为每个子网获得的 IP 地址是 32 个,因此每个 AWS 账户总共有 96 个 IP,我想有效地利用它。
- 我们正在使用此元素跨子网使用 IP 轮换 (split(",",local.ec2_subnet),count.index)
- 说因为或随机终止实例。我们留下了 96 个 IP 中的 57 个,但没有均匀分布在子网中。 子网 1a :7 子网 1b:25 子网 1c:25
- 现在,当我尝试配置下一组时。 terraform 因子网中的 IP 地址不可用而出现错误。它是轮流分配的。 (没有来自 AWS 的反馈)
- 有没有更好的方法来了解具有可用 IP 地址的子网并进行相应的分配?
@ydaetskcoR 添加重新生产的代码: 3 种服务器类型:只需创建下面提到的 1+8+48=57 个 EC2。
resource "aws_instance" "gs_instance" {
count = 1
subnet_id = element(split(",",local.ec2_subnet),2)
. . .
}
resource "aws_instance" "Head_instance" {
count = 8
subnet_id = element(split(",",local.ec2_subnet),2)
. . .
}
resource "aws_instance" "compute_instance" {
count = 48
subnet_id = element(split(",",local.ec2_subnet),2)
. . .
}
说分布如下表所示。并根据它们所在的子网仅终止其中的几个。这样您就可以获得可用 IP 地址的数量
Subnet-1a(32) Subnet-1b(32) Subnet-1c(32)
provision 32-19(used)=13 32-19(used)=13 32-19(used)=13
Termination 6=(available 7) 12=(available 25) 12=(available 25)
现在,如果我提供下一个 57 个节点,则上述 IP 地址可用,7 EC2 之后子网 1a 将失败(12 将失败,因为 IP 地址不可用,但实际上跨 3 个子网有 57 个可用 IP 地址.希望这些信息足以复制。
【问题讨论】:
-
您能否编辑您的问题以包含一些 Terraform 代码作为 minimal reproducible example,以显示您正在尝试的内容以及您最终如何在 AZ 中传播这种差异?
标签: terraform amazon-vpc terraform-provider-aws subnet terraform0.12+