<a href="http://dockone.io/article/2626">【燒腦式Kubernetes實戰訓練營】本次教育訓練理論結合實踐,主要包括:Kubernetes架構和資源排程原理、Kubernetes DNS與服務發現、基于Kubernetes和Jenkins的持續部署方案 、Kubernetes網絡部署實踐、監控、日志、Kubernetes與雲原生應用、在CentOS中部署Kubernetes叢集、Kubernetes中的容器設計模式、開發Kubernetes原生應用步驟介紹等。</a>
為啥隻說明以下兩種方案的部署模式,因為其他網絡方案不争氣。

Flannel部署相對來說簡單容易、坑少,直接上配置。
flannel.service
記住一定要提前在etcd把你的backend寫進去。
HOST-GW的配置:
VXLAN的配置:
然後可以開始你的表演,如果你建立2個pod,互ping一下發現不通,你部署DNS服務,一直報錯no route to host(就是Kubernetes那個SVC對應的IP),恭喜你,你下面要做的就是:
因為1.13版本以上Docker好似在iptable寫了這麼一條政策:
到此為止你起來Flanneld就可以開始你的Kubernetes之旅,當然現在好似還不行記得在/etc/cni/net.d下寫一個.conf結尾的檔案,當然叫什麼名字無所謂。etc:
10-flanneld-cni.conf
然後繼續你的表演就可以了。
其實吧,Calico在Kubernetes網絡方案用用的比Flanneld多,Calico懂得玩伸縮,技術也比較牛,在很多實體裝置不開啟BGP的情況下做了折中,用的IP-IP雖然性能有點損失,在雲上被大面積使用。Flanneld的host-gw模式性能雖然不錯,但是隻能在2層玩下,過了二層路由被重寫就GG了。
開始表演IP-IP模式。
第一步建立IPpool,pool就是所有calico配置設定ip的池子,其實就是Kubernetes的pool,不過Calico配置設定出來是/26的IP,一下少很多。其實我覺得/26比較符合機器配置的現狀至少,不會造成IP的浪費。
calico.env
calico.conf
然後你就可以裝逼了,記得把CNI的元件calico-ipam放到/opt/cni/bin。
其實就是在以上的基礎上多部署一個RR容器。
然後把這個IP寫到etcd裡。
然後就是建立一個全局的BGPpeer。
關閉 node-to-node mesh。
重新啟動你所有的calico-node。
calicoctl.cfg
開始你的裝逼之旅吧。
關于calico-bgp有硬體的自己嘗試吧。
原文釋出時間為:2017-08-28
本文來自雲栖社群合作夥伴Dockerone.io,了解相關資訊可以關注Dockerone.io。
原文标題:Kubernetes網絡部署方案