天天看點

Kubernetes網絡部署方案

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

為啥隻說明以下兩種方案的部署模式,因為其他網絡方案不争氣。

Kubernetes網絡部署方案

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

然後繼續你的表演就可以了。

Kubernetes網絡部署方案

其實吧,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網絡部署方案