Kubernetes(k8s)集羣部署(k8s企業級Docker容器集羣管理)系列之flanneld網絡介紹及部署(三)

0、前言


 

總體架構目錄:ASP.NET Core分佈式項目實戰-目錄html

k8s架構目錄:Kubernetes(k8s)集羣部署(k8s企業級Docker容器集羣管理)系列目錄node

1、flanneld介紹


 

 flannel是CoreOS提供用於解決Dokcer集羣跨主機通信的覆蓋網絡工具。它的主要思路是:預先留出一個網段,每一個主機使用其中一部分,而後每一個容器被分配不一樣的ip;讓全部的容器認爲你們在同一個直連的網絡,底層經過UDP/VxLAN等進行報文的封裝和轉發。docker

引用官方給出的圖片服務器

那麼一條網絡報文是怎麼從一個容器發送到另一個容器的呢?微信

一、容器直接使用目標容器的ip訪問,默認經過容器內部的eth0發送出去。
二、報文經過veth pair被髮送到vethXXX。
三、vethXXX是直接鏈接到虛擬交換機docker0的,報文經過虛擬bridge docker0發送出去。
四、查找路由表,外部容器ip的報文都會轉發到flannel0虛擬網卡,這是一個P2P的虛擬網卡,而後報文就被轉發到監聽在另外一端的flanneld。
五、flanneld經過etcd維護了各個節點之間的路由表,把原來的報文UDP封裝一層,經過配置的iface發送出去。
六、報文經過主機之間的網絡找到目標主機。
七、報文繼續往上,到傳輸層,交給監聽在8285端口的flanneld程序處理。
八、數據被解包,而後發送給flannel0虛擬網卡。
九、查找路由表,發現對應容器的報文要交給docker0。
十、docker0找到連到本身的容器,把報文發送過去。網絡

 

2、來部署吧


 

根據以前文章中的環境規劃,flanneld環境目前是部署在node節點上。(連個node服務器都按此步驟操做便可)架構

須要兩個文件,一個是flanneld 二進制包、一個是配置文件生成命令文件(此文件須要入QQ羣找羣主獲取,QQ羣號在下面)asp.net

 

一、解壓壓縮包、而後把解壓出來的兩個文件複製到 

 cp flanneld mk-docker-opts.sh /opt/kubernetes/bin/分佈式

 

二、在master服務節點裏面配置網段,供flanneld使用

 命令:工具

/opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379" set /coreos.com/network/config  '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

 

 三、執行配置文件裏面,能夠建立文件

第一:在cfg中建立 flanneld 文件:vi /opt/kubernetes/cfg/flanneld

 FLANNEL_OPTIONS="--etcd-endpoints=https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379 -etcd-cafile=/opt/kubernetes/ssl/ca.pem -etcd-certfile=/opt/kubernetes/ssl/server.pem -etcd-keyfile=/opt/kubernetes/ssl/server-key.pem"

 

第二:建立 docker.service => /usr/lib/systemd/system/docker.service

 

第三:建立 /usr/lib/systemd/system/flanneld.service

 

四、啓動flanneld 網絡,並設置開機啓動

systemctl start flanneld
systemctl enable flanneld

五、docker 也須要重啓

systemctl daemon-reload

systemctl restart docker

 

六、經過互相ping 能夠查看flanneld網絡是否設置成功

 命令: ip addr 查看地址,而後在另一臺node上ping 172.17.46.0,就能夠了

 

 七、下篇文章將要介紹master服務組件部署


 

 

asp.net Core 交流羣:787464275 歡迎加羣交流
若是您認爲這篇文章還不錯或者有所收穫,您能夠點擊右下角的【推薦】按鈕精神支持,由於這種支持是我繼續寫做,分享的最大動力!

做者:LouieGuo
聲明:原創博客請在轉載時保留原文連接或者在文章開頭加上本人博客地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設置打賞功能,若有特殊需求請與本人聯繫!

微信公衆號:歡迎關注                                                 QQ技術交流羣: 歡迎加羣

                

相關文章
相關標籤/搜索