我已经能够在CoreOS上使用Calico创建一个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一切都很好。然而,我想使用云-配置来自动化上面的内容。我尝试过使用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进行完全初始化?发布于 2016-04-22 16:22:13
派对有点晚了,但是.
使用Calico的最新版本,这更容易自动化。默认情况下,calico/node容器将尝试创建192.168.0.0/16池。如果您想使用不同的池,可以执行以下操作:
calico/node容器之前,创建要使用的池。calico/node环境变量启动NO_DEFAULT_POOLS=true容器。这将阻止容器创建默认池。(节点/文件系统/startup.py#L 259)使用云init/ systemd,我会这样做:
[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.targethttps://stackoverflow.com/questions/35307797
复制相似问题