Terraform正在查找跨子网可用的IP地址



我们一次性配置了一组相当大的服务器(每次部署每个环境57台(。我们每个子网得到的IP地址是32个,所以每个AWS帐户总共有96个IP,我想有效地利用它。

  1. 我们使用此元素(split(",",local.ec2_subnet(,count.index(跨子网使用IP轮换
  2. 说是因为或随机终止实例。我们留下了96个IP中的57个,但在子网中分布不均匀。子网-1a:7子网-1b:25子网-1c:25
  3. 现在,当我准备下一套的时候。地形失败,因为子网中的IP地址不可用而出现错误。它是轮流分配的。(无AWS反馈(
  4. 有没有更好的方法来了解具有可用IP地址的子网并相应地分配它

@ydaetskcoR为重新生产添加代码:3种类型的服务器:只需创建下面提到的1+8+48=57EC2。

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)

现在有了以上Ip地址可用性,如果我提供接下来的57个节点,7 EC2之后的子网-1a将失败(12将失败,因为Ip地址不可用,但实际上在3个子网中有57个Ip地址可用。希望这些信息足以复制。

也许可以先尝试使用"可用ip地址计数"筛选器使用数据源(aws_subnet_ids(动态获取相应的子网,然后将该子网的id传递到配置模块。

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/subnet_idshttps://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html

最新更新