如果需要运行在阿里云的专有网络上,我们推荐使用阿里云专有网络模式(ali-vpc backend)来替代封装IP规则以取得最佳的表现。因为使用这种模式,不需要额外的 flannel 接口。
在阿里云上使用 flannel 之前首先需要创建一个专有网络
进入阿里云 专有网络 控制台,点击 创建专有网络
来创建。
创建VPC
,然后等待创建完成在VPC管理页面点击交换机进入交换机列表。然后点击创建交换机
创建一个专有网络内的实例,然后把实例加入到先前创建的 VPC 中,并且选择使用的交换机。实例必须与先前创建的交换机在同一个可用区。
点击链接 创建子用户。
剩下的步骤就是 开启 etcd 然后把网络配置写入到 etcd 中,然后运行 flannel 。
首先 SSH
到实例上
开启 ETCD:
$ etcd --advertise-client-urls http://$INTERNAL_IP:2379 --listen-client-urls http://0.0.0.0:2379
把配置写入到 ETCD 中(注意网络范围不要与VPC的网络有重叠)。
$ etcdctl set /coreos.com/network/config '{"Network":"10.24.0.0/16", "Backend": {"Type": "ali-vpc"}}'
从 https://github.com/coreos/flannel/ 上拉取最新的分支
编译项目
设置环境变量
export ACCESS_KEY_ID=YOUR_ACCESS_KEY_SECRET
export ACCESS_KEY_SECRET=YOUR_ACCESS_KEY_SECRET
运行 flannel :
sudo ./flanneld --etcd-endpoints=http://127.0.0.1:2379
然后创建一个同样的实例并且连接。
运行 flannel 时候制定 --etcd-endpoints
来制定使用的ETCD。
确认创建的每一个子网都在路由表上有相应的记录。
阿里云每个路由表限制最多只能创建48个自定义路由条目。如果你需要更多的路由规则,可以发工单请求更多的配合或者切换到 VXLAN 后台模式。