juju add-subnet 失败-新模型中缺少子网?

juju add-subnet 失败-新模型中缺少子网?

我正在按照此博客文章在现有 AWS 基础设施中创建 Kubernetes: https://insights.ubuntu.com/2017/02/08/automate-the-deployment-of-kubernetes-in-existing-aws-infrastructure/

$ juju --version
2.2.6-xenial-amd64

我的不同之处:

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

我正在尝试定义 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

答案1

事实证明,整个问题都围绕着这样一个事实:该模型没有连接到任何 VPC,并且在创建时没有继承任何没有任何参数的东西。

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

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

由于一个错误,空格的使用仍然存在复杂性:

这使得空间无法通过添加子网进行编辑。由于空间无法删除,这进一步复杂化了这一点。因此,空间实际上是一次性写入的,但如果您使用旧空间中存在的子网创建新空间,则新空间可能会从一个空间中窃取子网。是的,这可能会破坏旧空间,而不会为您提供重建损坏空间的任何选项。

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

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

如果您在创建空间时搞砸了,您要么需要重建模型来清除空间,要么采用新名称。

相关内容