Amazon-Web-Services

如何使用 Terraform 在 AWS 上使用一些使用的 cidr 範圍在目前 VPC 中創建新的子網塊大小?

  • September 28, 2021

我想使用 Terraform 為 EKS 創建一個新子網。在同一個賬戶中,已經創建了 VPC 並創建了一些子網。

locals {
 vpc_cidr_block = "10.148.52.0/22"

 public_subnets = [
   "10.148.52.0/27",
   "10.148.54.0/27",
 ]
 # ...
 private_subnets_3 = [
   "10.148.52.80/28",
   "10.148.54.80/28",
 ]
 subnets_4 = [
   "10.148.52.240/28",
   "10.148.54.240/28",
 ]
 eks_private_subnets = [
   "10.148.52.128/25",
   "10.148.54.128/25",
 ]
}

resource "aws_subnet" "eks_private" {
 count = length(local.eks_private_subnets)

 vpc_id            = aws_vpc.this.id
 cidr_block        = local.eks_private_subnets[count.index]
 availability_zone = local.azs[count.index]
}

執行部署時,出現以下錯誤:

Error: error creating subnet: InvalidSubnet.Conflict: The CIDR '10.148.54.128/25' conflicts with another subnet
   status code: 400, request id: 11111111111-111111-1111111-1111111111111

 on main.tf line 50, in resource "aws_subnet" "eks_private":
50: resource "aws_subnet" "eks_private" {


Error: error creating subnet: InvalidSubnet.Conflict: The CIDR '10.148.52.128/25' conflicts with another subnet
   status code: 400, request id: 22222222222-222222-22222-222222222222222

 on network.tf line 50, in resource "aws_subnet" "eks_private":
50: resource "aws_subnet" "eks_private" {

.128/25 大小似乎與其他子網衝突。但是我想在這個 VPC 中創建一個 /25 大小的子網,這不可能嗎?否則,我是否需要創建一個新的 VPC 才能使用?

要關閉這個問題,問題是您試圖將相同的 CIDR 範圍分配給兩個子網。您需要在可用範圍之外分配您的子網 CIDR 範圍。您可能會發現有用的兩個工具

如果您使用更常見的 CIDR 塊大小,您可能會發現這更容易,但這並不總是可行的。帶有 /24 子網的 /16 VPC 相當常見,並且易於使用。

引用自:https://serverfault.com/questions/1078731