最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Docker中VLAN網(wǎng)絡(luò)模式的配置

 更新時間:2016年10月13日 11:52:37   投稿:daisy  
在Docker應(yīng)用到生產(chǎn)環(huán)境的時候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的網(wǎng)絡(luò)方案這三種,這篇文章給大家詳細介紹了Docker中VLAN網(wǎng)絡(luò)模式的配置,有需要的朋友們下面來一起看看吧。

前言

Docker作為目前最火的輕量級容器技術(shù),有很多令人稱道的功能,如Docker的鏡像管理。然而,Docker同樣有著很多不完善的地方,網(wǎng)絡(luò) 方面就是Docker比較薄弱的部分。因此,我們有必要深入了解Docker的網(wǎng)絡(luò)知識,以滿足更高的網(wǎng)絡(luò)需求。

Docker網(wǎng)絡(luò)模式選擇

目前已有不少文章介紹了Docker的網(wǎng)絡(luò)模型,但是在實際應(yīng)用中還是有不少坑和需要注意的點

在Docker應(yīng)用到生產(chǎn)環(huán)境的時候,網(wǎng)絡(luò)模型的選擇主要有以下幾種

     1、原生Bridge NAT模式

     2、Linux Bridge VLAN模式

     3、利用第三方的網(wǎng)絡(luò)方案

原生的Bridge NAT模式

這是Docker原生的網(wǎng)絡(luò)模式,每臺主機的容器都在一個獨立的子網(wǎng)中,外部訪問必須通過主機端口映射的方式。同時不同主機間的容器間訪問也必須通過這種主機端口映射的方式。換句話說,一臺主機上的容器其實是不知道另外一臺主機的容器的。這種方式是否可以用于生產(chǎn),一開始我是憂郁的,同時之前有寫文章寫NAT的性能損耗比較大,在沒有資源做完整測試的情況下,我們最初的方案就沒敢用這個網(wǎng)絡(luò)方案。但是最近測試自己測試的結(jié)果看,NAT的性能是可以接受的(QPS和Latency和VLAN的模式都比較接近),只要有合適的方案將不同主機的容器聯(lián)通就可。如用Mesos+Marathon+Bamboo+HAProxy的方式就可以的。

Linux Bridge VLAN模式

這是我考慮Docker網(wǎng)絡(luò)模型一開始就想決定好的,主要有幾方面的原因:

     1、NAT的方式一開始不敢用

     2、其它第三飯的工具還不太成熟

     3、一開始容器的數(shù)量不可能太多(因為VLAN的模式受限于VLAN的整體數(shù)量,只能4096個容器),如果按照一個主機10-16個容器算,可以支持到256臺主機,這個還是可以接受的

     4、每個主機需要一個獨立IP,并且可以互聯(lián)互通

     5、運維管理要簡單,畢竟我們的運維體系還是物理機體系的

     6、可以做到主機網(wǎng)絡(luò)和VLAN網(wǎng)絡(luò)的隔離

我們用的主機是CentosOS 7.X系列, 主機的網(wǎng)絡(luò)配置如下:兩個1G的網(wǎng)卡,通過Bond的方式綁在一起,然后配置主機一個虛擬網(wǎng)卡在VALN 1上,容器的Docker0的Bridge在另外一個VLAN 1上

網(wǎng)卡配置:

這里需要注意的是必須安裝了bridge-utils, NetworkManager

步驟

配置兩個網(wǎng)卡,不要配置IP/GATEWAY等網(wǎng)絡(luò)參數(shù),增加MASTER=bond0以及SLAVE=yes

完整例子如:

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0f0
UUID=7f6fa8e9-0177-46a8-b8ea-55c2187bea11
DEVICE=enp2s0f0
ONBOOT=yes
MASTER=bond0
SLAVE=yes

增加bond0網(wǎng)絡(luò)配置/etc/sysconfig/network-scripts/ifcfg-bond0,并根據(jù)使用情況選擇 mode值,內(nèi)容如下。因為要在bond0上再配置VLAN所以沒有配置IP等相關(guān)參數(shù)。如果配置了IP等參數(shù)則可以認為bond0就是一個普通網(wǎng)卡了。

DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="miimon=100 mode=0"

可以通過cat /proc/net/bonding/bond0看配置的情況

在bond0上配置vlan,這里的vlan號為136,所以文件名為/etc/sysconfig/network-scripts/ifcfg-bond0.136,內(nèi)容為:

VLAN=yes
TYPE=Ethernet
DEVICE=bond0.136
NAME=bond0.136
PHYSDEV=bond0
ONBOOT=yes
BOOTPROTO=static
BRIDGE=docker0

因為后續(xù)需要將docker的bridge(docker0)掛在這個vlan上,所以TYPE必須是Ethernet,而且多了項配置BRIDGE=docker0

配置docker的bridge( /etc/sysconfig/network-scripts/ifcfg-docker0),名字也可以用別的,為了減少docker engine需要增加-b啟動參數(shù),所以用了默認的名字。同時沒有給docker0配置IP,因為有另外一個vlan的ip來管理主機

TYPE=bridge
VLAN=yes
DEVICE=docker0
SLAVE=bond0.136
NAME=docker0
ONBOOT=yes
BOOTPROTO=none

Docker的配置

按機器用途類型,修改 Docker 啟動文件 /usr/lib/systemd/system/docker.service,內(nèi)容如下:

      在 ExecStart=/usr/bin/docker daemon -H fd:// 這行后面加上:

   --fixed-cidr=172.20.56.16/28 --default-gateway=172.20.56.1 --registry-mirror=http://registry.xxxx.com:5000 --insecure-registry=docker.xxx.com:5000 --storage-driver=overlay --ip-forward=false --iptables=false --log-driver=journald
   (注釋:"--fixed-cidr="后面填寫的是該機器容器IP子網(wǎng)段;"--default-gateway="后面填寫的是容器IP子網(wǎng)網(wǎng)關(guān);"--registry-mirror="后面填寫的是生產(chǎn)環(huán)境的docker registry域名。)

這里有幾個坑:

     1、對于Docker的存儲,不要使用默認的方式,而是要使用overlay,同時是配合CentOS 7.X

     2、因為開始安裝機器的時候網(wǎng)絡(luò)配置不是Bond的模式,需要配置好bond后需要清理下原有的配置

          修改 /etc/sysctl.conf 文件,把 “net.ipv4.ip_forward” 的值修改為1

          不需要在/etc/sysconfig/network文件上配置gateway

          創(chuàng)建文件 /etc/modules-load.d/bonding.conf,內(nèi)容如下:bonding

     3、默認情況,安裝好docker后,并沒有docker用戶組和docker用戶,必須使用root之行,如果不用root則需要:

          創(chuàng)建docker用戶組:sudo groupadd docker

          把當前用戶加入docker用戶組,例如當前使用的是apps用戶:sudo usermod -aG docker apps

          創(chuàng)建docker用戶并加入docker用戶組:sudo useradd docker -g docker

          修改“/var/lib/docker”目錄及其子目錄的owner和group:sudo chown -R docker:docker

          退出并重新登錄,刷新當前用戶的權(quán)限。

          最大的坑是我們在某些主機上安裝一些平臺服務(wù)如Zookeeper,如果容器想訪問這些配置為容器的主機上的服務(wù)是訪問不通,,這個弄好了好久都沒有辦法,找網(wǎng)絡(luò)的同事,從交換機配置等來看都沒有問題,然后在老羅的指導(dǎo)下做以下嘗試:

              - 在主機上啟動tcpdump,然后在主機上抓取來自于容器的ping包,可以發(fā)現(xiàn)主機收到了容器發(fā)來的ICMP包,但是容器沒有收到任何響應(yīng),ping總是超時,難道是主機拋棄了ICMP包?

                    a、打開火星文檢測看看是否有包進來: sudo sysctl net.ipv4.conf.bond0/51.log_martians=1 (bond0/51為對應(yīng)bond0.51的網(wǎng)卡)可以看到有包進來說明有來源不明的數(shù)據(jù)包。

                    b、從以上兩點可以想到網(wǎng)絡(luò)上我們配置了兩個不同的網(wǎng)卡,不同的網(wǎng)斷,原理上他們應(yīng)該是各自隔離的,及訪問網(wǎng)段1的數(shù)據(jù)要從網(wǎng)段1的網(wǎng)卡進來,如果從網(wǎng)段2進來,Linux認為是非法包

                    d、據(jù)其原因,是因為Linux的RP(Reverse Path)過濾的問題,在這種情況下,需要將這臺主機的RP關(guān)閉就可

sudo sysctl net.ipv4.conf.bond0/51.rp_filter=0
sudo sysctl net.ipv4.conf.bond0/52.rp_filter=0
sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.conf.bond0.rp_filter=0

第三方網(wǎng)絡(luò)Plugin

目前比較好的選擇是以下幾種,不過還在摸索中

    Calico, http://projectcalico.org/

    Contiv, http://docs.contiv.io

總結(jié)

以上就是Docker中VLAN網(wǎng)絡(luò)模式配置的詳細介紹,希望這篇文章的全部內(nèi)容對大家學習或者使用Docker能有所幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • 基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    這篇文章主要介紹了基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像的方法,對于?Java?程序來說使用?jib-maven-plugin?插件來構(gòu)建鏡像還是非常方便的,本文通過實例代碼詳細講解,需要的朋友可以參考下
    2023-02-02
  • 詳解如何解決docker容器無法通過IP訪問宿主機問題

    詳解如何解決docker容器無法通過IP訪問宿主機問題

    這篇文章主要介紹了詳解如何解決docker容器無法通過IP訪問宿主機問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Docker rocketmq部署的實現(xiàn)示例

    Docker rocketmq部署的實現(xiàn)示例

    最近學習使用 rocketmq,需要搭建 rocketmq 服務(wù)端,本文主要記錄 rocketmq 搭建過程以及這個過程踩到的一些坑,感興趣的可以了解一下
    2021-12-12
  • docker開通2375端口防漏洞問題

    docker開通2375端口防漏洞問題

    這篇文章主要介紹了docker開通2375端口防漏洞問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker守護進程的配置和操作的方法

    docker守護進程的配置和操作的方法

    這篇文章主要介紹了docker守護進程的配置和操作的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Mac下部署springBoot項目到Docker中(demo)

    Mac下部署springBoot項目到Docker中(demo)

    本文通過一個簡單的demo給大家分享Mac下部署springBoot項目到Docker的方法,感興趣的朋友一起看看吧
    2018-01-01
  • Docker之Dockerfile使用方法詳解

    Docker之Dockerfile使用方法詳解

    當使用Docker構(gòu)建容器化應(yīng)用程序時,Dockerfile是一個用于定義容器鏡像的文本文件,Dockerfile 的編寫是構(gòu)建容器的基礎(chǔ),它允許您定義容器的構(gòu)建步驟、環(huán)境和配置,所以本文就給大家講講Docker的Dockerfile使用方法,需要的朋友可以參考下
    2023-09-09
  • 基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)

    基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)

    這篇文章主要介紹了基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 開源框架?Matrix-Dendrite?搭建聊天服務(wù)器的詳細過程

    開源框架?Matrix-Dendrite?搭建聊天服務(wù)器的詳細過程

    Matrix?是一個開源、可交互、去中心化的實時通信服務(wù)框架。使用?Matrix?可以搭建安全的通信服務(wù)器,配合支持?Matrix?的客戶端可以實現(xiàn)個人、團隊間的實時聊天交互,對Matrix?Dendrite搭建聊天服務(wù)器的過程感興趣的朋友一起看看吧
    2022-03-03
  • 部署維護docker環(huán)境的詳細教程

    部署維護docker環(huán)境的詳細教程

    這篇文章主要介紹了部署維護docker環(huán)境的詳細教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02

最新評論

无为县| 保德县| 防城港市| 洛南县| 沈阳市| 化隆| 威远县| 莒南县| 措勤县| 茂名市| 杨浦区| 澄城县| 泰宁县| 漠河县| 新宁县| 承德县| 阳江市| 鲜城| 林州市| 曲松县| 巍山| 镇江市| 兴安盟| 广安市| 昌宁县| 怀安县| 漳州市| 镇坪县| 沙雅县| 河间市| 阿拉善右旗| 奈曼旗| 句容市| 锦州市| 巴彦淖尔市| 玉溪市| 扶绥县| 德格县| 东乌珠穆沁旗| 平利县| 措美县|