Docker網路解決方案-Flannel部署記錄
Docker跨主機容器間網路通訊實現的工具有Pipework、Flannel、Weave、Open vSwitch(虛擬交換機)、Calico實現跨主機容器間的通訊。其中Pipework、Weave、Flannel,三者的區別是:
Weave的思路
1 2 |
|
flannel的思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ping 通。
|
預設的節點間資料通訊方式是UDP轉發.在Flannel的GitHub頁面有如下的一張原理圖:
對上圖的簡單解釋:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
pipework的思路
pipework是一個單機的工具,組合了brctl等工具,可以認為pipework解決的是宿主機上的設定容器的虛擬網絡卡、網橋、ip等,可以配合其他網路使用。詳情可參考:Docker網路詳解及pipework原始碼解讀與實踐
如果容器數量不多,想簡單的組一個大的3層網路,可以考慮weave 如果容器數量很多,而且你們的環境複雜,需要多個子網,可以考慮open vswitch或者fannel weave的總體網路效能表現欠佳, flannel VXLAN 能滿足要求,一般推薦用flannel
------------------------------------------------------------------------------------------------------------------------
Flannel環境部署記錄
1)機器環境(centos7系統)
1 2 |
|
2)node-1(182.48.115.233)機器操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
|
3)node-2(182.48.115.235)機器操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
4)建立容器,驗證跨主機容器之間的網路聯通性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
|