摘要:如果的網卡為,則不需要此步驟設置和的以下步驟得在或之前做假設你有三個機器,,準備搞一個集群獲得的參數,注意停掉刪掉虛擬網卡啟動重建,記得設置之前得到的參數和正確的值再到和上執行相同的命令。
原文地址
Docker Daemon生產環境配置提到了MTU設置,但是這只是針對于名為bridge的docker bridge network,對于overlay network是無效的。
如果docker host machine的網卡MTU為1500,則不需要此步驟
設置ingress和docker_gwbridge的MTU以下步驟得在swarm init或join之前做
假設你有三個機器,manager、worker-1、worker-2,準備搞一個Docker swarm集群
1) [manager] docker swarm init
2) [manager] 獲得docker_gwbridge的參數,注意Subnet
$ docker network inspect docker_gwbridge [ { "Name": "docker_gwbridge", ... "IPAM": { ... "Config": [ { "Subnet": "172.18.0.0/16", ... } ] }, ... } ]
3) [manager] docker swarm leave --force
4) [manager] 停掉docker sudo systemctl stop docker.service
5) [manager] 刪掉虛擬網卡docker_gwbridge
$ sudo ip link set docker_gwbridge down $ sudo ip link del dev docker_gwbridge
6) [manager] 啟動docker sudo systemctl start docker.service
7) [manager] 重建docker_gwbridge,
記得設置之前得到的Subnet參數和正確的MTU值
$ docker network rm docker_gwbridge $ docker network create --subnet 172.18.0.0/16 --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=1450 docker_gwbridge
再到worker-1和worker-2上執行相同的命令。
8) [manager] docker swarm init
9) [manager] 先觀察ingress network的參數,注意Subnet和Gateway:
$ docker network inspect ingress [ { "Name": "ingress", ... "IPAM": { ... "Config": [ { "Subnet": "10.255.0.0/16", "Gateway": "10.255.0.1" } ] }, ... } ]
10) [manager] 刪除ingress network,docker network rm ingress。
11) [manager] 重新創建ingress network,記得填寫之前得到的Subnet和Gateway,以及正確的MTU值:
$ docker network create --driver overlay --ingress --subnet=10.255.0.0/16 --gateway=10.255.0.1 --opt com.docker.network.driver.mtu=1450 ingress
12) [worker-1] [worker-2] join docker swarm join ...
注意:新機器在join到swarm之前,得先執行第7步
驗證:
1) 啟動一個swarm service,docker service create -td --name busybox busybox
2) 觀察虛擬網卡
發現MTU都是1450:
$ ip link 1: lo:mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: mtu 1450 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether fa:16:3e:71:09:f5 brd ff:ff:ff:ff:ff:ff 3: docker0: mtu 1450 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:6b:de:95:71 brd ff:ff:ff:ff:ff:ff 298: docker_gwbridge: mtu 1450 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:ae:7b:cd:b4 brd ff:ff:ff:ff:ff:ff 309: veth7e0f9e5@if308: mtu 1450 qdisc noqueue master docker_gwbridge state UP mode DEFAULT group default link/ether 16:ca:8f:c7:d3:7f brd ff:ff:ff:ff:ff:ff link-netnsid 1 311: vethcb94fec@if310: mtu 1450 qdisc noqueue master docker0 state UP mode DEFAULT group default link/ether 9a:aa:de:7b:4f:d4 brd ff:ff:ff:ff:ff:ff link-netnsid 2
3) 觀察容器內網卡
網卡MTU也是1450:
$ docker exec b.1.pdsdgghzyy5rhqkk5et59qa3o ip link 1: lo:自建overlay network的MTU 方法一:在docker compose file設置mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 310: eth0@if311: mtu 1450 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
... networks: my-overlay: driver: bridge driver_opts: com.docker.network.driver.mtu: 1450
不過這樣不好,因為這樣就把docker compose file的內容和生產環境綁定了,換了個環境這個MTU值未必合適。
方法二:外部創建時設置docker network create -d overlay --opt com.docker.network.driver.mtu=1450 --attachable my-overlay
用法:
在docker compose file里這樣用:
... networks: app-net: external: true name: my-overlay
docker run --network my-overlay ...
docker service create --network my-overlay ...
參考資料Use overlay networks
Docker MTU issues and solutions
docker network create
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27674.html
摘要:配置網絡參照生產環境配置中的和子網章節。特別注意觀察和的子網是否與已有網絡沖突如果有沖突則參考網絡的中的方法修改子網。部署使用的是的監控方案。創建應用網絡創建你也可以改成自己的名字參考網絡的檢查子網與是否配置正確。 原文 大綱 本文只是一種實際部署方案的例子,涉及到的技術有(除Docker/Docker Swarm外): Docker overlay network Fluentd...
摘要:原文地址一些生產環境中要注意的參數配置。本文介紹一些生產環境中要特別注意的參數,這些參數可以通過在命令行參數形式給,也可以通過在里配置。然后執行來驗證配置是否生效。它們的原理就是修改參數。 原文地址 一些docker daemon生產環境中要注意的參數配置。 本文介紹一些生產環境中dockerd要特別注意的參數,這些參數可以通過在dockerd命令行參數形式給,也可以通過在/etc/d...
摘要:本次分享給大家帶來與能夠融合使用的一些玩法。計算節點的進程不能在運行在中。部署的過程需要拉取很多鏡像,需要耐心的等待。之前的計劃應該是在版會添加的支持,差不多就是今年月份左右。 OpenStack是開源Iaas云的事實標準,功能大而全,除了能管理虛機同時也能管理容器,OpenStack項目中的Magnum、Kuryr、Kolla、Murano、Nova-docker等都是與容器場景很不...
摘要:基于近期學習的內容,整理與網絡相關的知識。針對這一問題,采用網絡來解決。但這篇博客的重點不在,我們可以在啟動時,為其指定一個分布式存儲,從而使得我們能夠實驗網絡。 基于近期學習的 Docker 內容,整理與 Docker 網絡相關的知識。實驗環境:Centos 7.4 Docker 版本如下: Client: Version: 18.03.1-ce API versio...
閱讀 1808·2021-11-23 09:51
閱讀 1268·2021-11-18 10:02
閱讀 963·2021-10-25 09:44
閱讀 2099·2019-08-26 18:36
閱讀 1619·2019-08-26 12:17
閱讀 1146·2019-08-26 11:59
閱讀 2746·2019-08-23 15:56
閱讀 3350·2019-08-23 15:05