kops在现有的AWS vpc和子网中创建集群

时间:2018-06-21 09:05:06

标签: kubernetes kops

在使用现有AWS vpc和子网中的kops创建kubernet时遇到麻烦。 我有一个具有以下CIDR块的vpc:

IPv4 CIDR: 10.10.16.0/20

在该VPC中,我的子网带有分配的CIDR块:

SubnetDatabaseA: 10.10.23.0/24

SubnetDatabaseB: 10.10.24.0/24

SubnetDatabaseC: 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)?

2 个答案:

答案 0 :(得分:2)

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 edit cluster $CLUSTER_NAME且没有kops create cluster标志之后使用--subnets编辑集群,并更新子网部分,如上所示。

参考:https://github.com/kubernetes/kops/blob/master/docs/cli/kops_create_cluster.md

答案 1 :(得分:0)

对我来说,要求是在现有 VPC 和子网中创建 K8s 集群。即使在传递了 VPCID、SUBNETID 之后,我仍然收到此错误。

当我更改主区域和节点区域 us-east-1a 时,它对我有用创造。