首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Calico配置为使用自定义子网作为默认值?

如何将Calico配置为使用自定义子网作为默认值?
EN

Stack Overflow用户
提问于 2016-02-10 05:50:06
回答 1查看 1.2K关注 0票数 0

我已经能够在CoreOS上使用Calico创建一个Kubernetes集群,遵循这个指南

正如指南中记录的那样,Calico创建了一个默认子网192.168.0.0/16。一旦服务启动,我可以通过运行以下命令来重新定义子网:

代码语言:javascript
复制
$ 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。错误是:

代码语言:javascript
复制
calicoctl[1330]: 192.168.0.0/16 is not a configured pool.

我猜这是因为在执行pool remove命令时尚未创建默认子网。

所以我的问题是:

  1. 是否有一种方法来配置Calico,使其使用我的自定义子网作为缺省值?
  2. 如果没有,那么是否有一种方法可以在默认子网上执行pool remove之前对Calico进行完全初始化?
EN

回答 1

Stack Overflow用户

发布于 2016-04-22 16:22:13

派对有点晚了,但是.

使用Calico的最新版本,这更容易自动化。默认情况下,calico/node容器将尝试创建192.168.0.0/16池。如果您想使用不同的池,可以执行以下操作:

  1. 在运行calico/node容器之前,创建要使用的池。
  2. 使用calico/node环境变量启动NO_DEFAULT_POOLS=true容器。这将阻止容器创建默认池。(节点/文件系统/startup.py#L 259)

使用云init/ systemd,我会这样做:

代码语言:javascript
复制
[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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35307797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档