在前面的小节中,我们没有特别配置,calico 会为自动为网络分配 subnet,当然我们也可以定制。
首先定义一个 IP Pool,比如:
cat << EOF | calicoctl create -f -
- apiVersion: v1
kind: ipPool
metadata:
cidr: 17.2.0.0/16
EOF
用此 IP Pool 创建 calico 网络。
docker network create --driver calico --ipam-driver calico-ipam --subnet=17.2.0.0/16 my_net
此时运行容器将分配到指定 subnet 中的 IP。
当然也可以通过 --ip
为容器指定 IP,但必须在 subnet 范围之内。
至此,我们已经讨论了 Docker 的多种跨主机网络方案,下一节将从多个维度比较各种方案的优缺点。