kops 在现有 AWS vpc 和子网中创建集群
kops create cluster inside existing AWS vpc and subnets
我在现有 AWS vpc 和子网中使用 kops 创建 kubernets 时遇到问题。
我有一个具有以下 CIDR 块的现有 vpc:
IPv4 CIDR: 10.10.16.0/20
在那个 VPC 中,我有我的子网及其分配的 CIDR 块:
子网数据库A: 10.10.23.0/24
子网数据库 B: 10.10.24.0/24
子网数据库 C: 10.10.20.0/24
等等...
尝试使用 kops 创建集群时出现此错误:
error running task "Subnet/ap-southeast-2a.clusters.dev1.k8s.local" (9m58s remaining to succeed): error creating subnet: InvalidSubnet.Conflict: The CIDR '10.10.18.0/23' conflicts with another subnet
status code: 400, request id: 252367d1-d693-47b9-a6c5-a44908a0f6f7
这意味着我的子网之一已经在使用该 IP 范围。
如何分配 kops 使用我选择的特定 CIDR?
因为我可以看到每次尝试创建集群时它都会分配一个不同的 CIDR(例如 CIDR 10.10.18.0/23)?
kops create cluster --help
--subnets stringSlice Set to use shared subnets
--vpc string Set to use a shared VPC
见下文
kops create cluster --name=${CLUSTER_NAME} --vpc=vpc-1010af11 --subnets=subnet- 000e123a,subnet-123b456,subnet-888c9991 --master-zones=${ZONES} --zones=${ZONES} --networking=weave
因此,如果您传递子网 ID,kops 不会创建新的 CIDR,而是使用提供的子网 ID 和相应的 CIDR。参考以下。
subnets:
- cidr: 92.145.123.0/26
id: subnet- 000e123a
name: us-east-1a
type: Public
zone: us-east-1a
- cidr: 92.145.123.64/26
id: subnet-123b456
name: us-east-1b
type: Public
zone: us-east-1b
- cidr: 92.145.123.128/26
id: subnet-888c9991
name: us-east-1c
type: Public
zone: us-east-1c
或者您可以在 运行 kops create cluster
之后使用 kops edit cluster $CLUSTER_NAME
编辑集群而不使用 --subnets
标志并更新子网部分,如上所示。
参考:https://github.com/kubernetes/kops/blob/master/docs/cli/kops_create_cluster.md
对我来说,要求是在现有的 VPC 和子网中创建 K8s 集群。即使在传递了 VPCID、SUBNETID 后,我仍收到此错误。
当我更改我的主区域和节点区域时,它对我有用 us-east-1a 与子网区域相同(us-east-1a) 我想在其中创建。
我在现有 AWS vpc 和子网中使用 kops 创建 kubernets 时遇到问题。 我有一个具有以下 CIDR 块的现有 vpc:
IPv4 CIDR: 10.10.16.0/20
在那个 VPC 中,我有我的子网及其分配的 CIDR 块:
子网数据库A: 10.10.23.0/24
子网数据库 B: 10.10.24.0/24
子网数据库 C: 10.10.20.0/24
等等...
尝试使用 kops 创建集群时出现此错误:
error running task "Subnet/ap-southeast-2a.clusters.dev1.k8s.local" (9m58s remaining to succeed): error creating subnet: InvalidSubnet.Conflict: The CIDR '10.10.18.0/23' conflicts with another subnet
status code: 400, request id: 252367d1-d693-47b9-a6c5-a44908a0f6f7
这意味着我的子网之一已经在使用该 IP 范围。
如何分配 kops 使用我选择的特定 CIDR?
因为我可以看到每次尝试创建集群时它都会分配一个不同的 CIDR(例如 CIDR 10.10.18.0/23)?
kops create cluster --help
--subnets stringSlice Set to use shared subnets
--vpc string Set to use a shared VPC
见下文
kops create cluster --name=${CLUSTER_NAME} --vpc=vpc-1010af11 --subnets=subnet- 000e123a,subnet-123b456,subnet-888c9991 --master-zones=${ZONES} --zones=${ZONES} --networking=weave
因此,如果您传递子网 ID,kops 不会创建新的 CIDR,而是使用提供的子网 ID 和相应的 CIDR。参考以下。
subnets:
- cidr: 92.145.123.0/26
id: subnet- 000e123a
name: us-east-1a
type: Public
zone: us-east-1a
- cidr: 92.145.123.64/26
id: subnet-123b456
name: us-east-1b
type: Public
zone: us-east-1b
- cidr: 92.145.123.128/26
id: subnet-888c9991
name: us-east-1c
type: Public
zone: us-east-1c
或者您可以在 运行 kops create cluster
之后使用 kops edit cluster $CLUSTER_NAME
编辑集群而不使用 --subnets
标志并更新子网部分,如上所示。
参考:https://github.com/kubernetes/kops/blob/master/docs/cli/kops_create_cluster.md
对我来说,要求是在现有的 VPC 和子网中创建 K8s 集群。即使在传递了 VPCID、SUBNETID 后,我仍收到此错误。
当我更改我的主区域和节点区域时,它对我有用 us-east-1a 与子网区域相同(us-east-1a) 我想在其中创建。