Docker 如何将印花布配置为使用自定义子网作为默认子网?
我已经能够在CoreOS上使用印花布创建Kubernetes集群 如指南中所述,Calico创建了一个默认子网192.168.0.0/16。服务启动后,我可以通过运行以下命令重新定义子网:Docker 如何将印花布配置为使用自定义子网作为默认子网?,docker,kubernetes,project-calico,Docker,Kubernetes,Project Calico,我已经能够在CoreOS上使用印花布创建Kubernetes集群 如指南中所述,Calico创建了一个默认子网192.168.0.0/16。服务启动后,我可以通过运行以下命令重新定义子网: $ export ETCD_AUTHORITY=127.0.0.1:6666 $ calicoctl pool remove 192.168.0.0/16 $ calicoctl pool add 10.244.0.0/16 --nat-outgoing 一切都很好。但是,我希望使用cloud config
$ export ETCD_AUTHORITY=127.0.0.1:6666
$ calicoctl pool remove 192.168.0.0/16
$ calicoctl pool add 10.244.0.0/16 --nat-outgoing
一切都很好。但是,我希望使用cloud config自动化上述操作。我曾尝试使用OneShot服务来执行命令,但它只起了部分作用。新增子网10.244.0.0/16,但未删除192.168.0.0/16。错误是:
calicoctl[1330]: 192.168.0.0/16 is not a configured pool.
我猜这是因为执行pool remove
命令时,默认子网尚未创建
因此,我的问题是:
pool remove
之前完全初始化
子网来这里参加聚会有点晚了,但是 随着最近发行的印花布,这更容易自动化。默认情况下,
calico/node
容器将尝试创建192.168.0.0/16
池。如果要使用其他池,可以执行以下操作:
calico/node
容器之前,创建要使用的池calico/node
容器,但不使用\u DEFAULT\u POOLS=true环境变量。这将阻止容器创建默认池。()[Service]
Environment=ETCD_AUTHORITY=$private_ipv4:2379
Environment=NO_DEFAULT_POOLS=true
ExecStartPre=/opt/bin/calicoctl pool add <your ipv4 pool> --nat-outgoing
ExecStartPre=/opt/bin/calicoctl pool add <your ipv6 pool>
ExecStart=/opt/bin/calicoctl node --ip=$private_ipv4 --detach=false
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
[服务]
环境=ETCD\u权限=$private\u ipv4:2379
环境=无\u默认\u池=真
ExecStartPre=/opt/bin/calicottl池添加--nat传出
ExecStartPre=/opt/bin/calicottl池添加
ExecStart=/opt/bin/calicottl节点--ip=$private\u ipv4--detach=false
重新启动=始终
RestartSec=10
[安装]
WantedBy=multi-user.target