juju add-subnet失败 – 在新模型中丢失子网?

我正在关注这篇博文,在现有AWS基础架构中创buildkubernetes: https ://insights.ubuntu.com/2017/02/08/automate-the-deployment-of-kubernetes-in-existing-aws-infrastructure/

$ juju --version 2.2.6-xenial-amd64 

我的差异:

  • 由于VPC已经存在(VPC中的3x priv + 3x pub子网),我没有使用cloudformation,
  • 我创build了一个新模型,因为我想使用模型构build多个集群(每个环境一个)。

我正在试图定义存在于AWS中的公有和私有子网(大概位于页面中间的一半),但是我收到的错误信息几乎没有什么见解。

 $ juju add-model dev-k8s $ juju add-space public $ juju add-space private $ juju add-subnet subnet-12345678 private ERROR cannot add subnet: no subnets defined 

这个错误信息似乎很鸡鸡蛋。 我不能添加一个没有子网的子网?

我已经检查了文档: https : //jujucharms.com/docs/2.2/commands#add-subnet

 Usage: juju add-subnet [options] <CIDR>|<provider-id> <space> [<zone1> <zone2> ...] 

所以我尝试了一些变化,但是最终都得到了类似的结果

 $ juju add-subnet 1.2.3.4/20 private us-east-1a ERROR cannot add subnet: no subnets defined $ juju add-subnet 1.2.3.4/20 private subnet-12345678 ERROR cannot add subnet: no subnets defined $ juju add-subnet subnet-12345678 private us-east-1a ERROR cannot add subnet: no subnets defined ... + many more that stretch the usage definition above 

奇怪的是,新的dev-k8s模型中没有填充子网

 $ juju switch dev-k8s && juju list-subnets pre-ops-k8s:admin/default -> pre-ops-k8s:admin/dev-k8s No subnets to display. 

但默认模型包含所有的子网

 $ juju switch default && juju list-subnets pre-ops-k8s:admin/dev-k8s -> pre-ops-k8s:admin/default subnets: 1.2.3.4/20: type: ipv4 provider-id: subnet-12345678 provider-network-id: vpc-12345678 status: in-use space: "" zones: - us-east-1a ... cropped output 

事实certificate,整个问题围绕着这样的事实:模型没有连接到任何VPC,并且在没有参数创build时没有inheritance任何东西。

运行以下命令自动填充子网:

 juju add-model <common-model-name> aws/us-east-1 --config vpc-id=vpc-12345678 --config vpc-id-force=true 

围绕由于错误而使用空间还有一些复杂的问题:

这使得通过添加子网不可编辑的空间。 空间不能被删除的事实使情况变得更加复杂。 因此,空格实际上是一次写入,只是如果您使用存在于旧空间中的子网创build新空间,则可以通过新空间从一个空间盗取子网。 是的,这可以打破旧空间,没有给你任何select重build破碎的空间。

要创build具有多个子网的空间,必须在原始创build空间调用中指定所有子网

 juju add-space <space name> 1.2.3.4/32 2.3.4.5/32 3.4.5.6/32 

如果你搞砸了创build一个空间,你可能需要重build模型来擦空间,或用一个新的名字。