Docker 網絡 Flannel


flannel 安裝

sudo yum install kernel-headers golang gcc
yum install flannel

flannel 配置

在etcd中設置變量

etcdctl set /coreos.com/network/config '{ "Network": "172.17.0.0/16" }'

配置flannel

vi /etc/sysconfig/flanneld

# Flanneld configuration options

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD="http://10.1.99.13:2379,10.1.99.14:2379,10.1.99.15:2379"

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_KEY="/coreos.com/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

重新啟動flannel

systemctl daemon-reload flanneld

systemctl restart flanneld

flannel服務啟動

flannel服務需要先於docker啟動。flannel服務啟動時主要做了以下幾步的工作:

  • 從etcd中獲取network的配置信息
  • 划分subnet,並在etcd中進行注冊
  • 將子網信息記錄到/run/flannel/subnet.env
cat /run/flannel/subnet.env
cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.17.0.0/16
FLANNEL_SUBNET=172.17.50.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
  • 之后將會有一個腳本將subnet.env轉寫成一個docker的環境變量文件/run/flannel/docker
cat /run/flannel/docker 
FLANNEL_NETWORK=172.17.0.0/16
FLANNEL_SUBNET=172.17.50.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
[root@v4 ~]# cat /run/flannel/docker 
DOCKER_OPT_BIP="--bip=172.17.50.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=true"
DOCKER_OPT_MTU="--mtu=1472"
DOCKER_NETWORK_OPTIONS=" --bip=172.17.50.1/24 --ip-masq=true --mtu=1472 "

 

配置docker

systemctl show docker 將會發現 在安裝flannel后自動生成配置

DropInPaths=/usr/lib/systemd/system/docker.service.d/flannel.conf

並引用/run/flannel/docker

故在docker的systemd文件中應用對應變量 DOCKER_NETWORK_OPTIONS 即可

 

vi /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock $DOCKER_NETWORK_OPTIONS

 

重新啟動docker

systemctl daemon-reload

systemctl restart docker 

 

測試

分別在兩台節點上啟動測試容器

docker run -d -it --name ip_test busybox

后網絡互通,測試通過

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM