全部課程
calico的網絡模式
發布時間: 2022-12-30
Calico是一個純三層的網絡插件,calico的bgp模式類似于flannel的host-gw
calico方便集成 OpenStack這種 IaaS云架構,為openstack虛擬機、容器、裸機提供多主機間通信。
calico是一個純三層的虛擬網絡,它沒有復用docker的docker0網橋,而是自己實現的, calico網絡不對數據包進行額外封裝,不需要NAT和端口映射,擴展性和性能都很好。Calico網絡提供了DockerDNS服務, 容器之間可以通過hostname訪問,Calico在每一個計算節點利用LinuxKernel實現了一個高效的vRouter(虛擬路由)來負責數據轉發,它會為每個容器分配一個ip,每個節點都是路由,把不同host的容器連接起來,從而實現跨主機間容器通信。而每個vRouter通過BGP協議(邊界網關協議)負責把自己節點的路由信息向整個Calico網絡內傳播——小規模部署可以直接互聯,大規模下可通過指定的BGProute reflector來完成;Calico基于iptables還提供了豐富而靈活的網絡策略,保證通過各個節點上的ACLs來提供多租戶隔離、安全組以及其他可達性限制等功能。
1)IPIP
把一個IP數據包又套在一個IP包里,即把IP層封裝到IP層的一個 tunnel,它的作用其實基本上就相當于一個基于IP層的網橋,一般來說,普通的網橋是基于mac層的,根本不需要IP,而這個ipip則是通過兩端的路由做一個tunnel,把兩個本來不通的網絡通過點對點連接起來;
calico以ipip模式部署完畢后,node上會有一個tunl0的網卡設備,這是ipip做隧道封裝用的,也是一種overlay模式的網絡。當我們把節點下線,calico容器都停止后,這個設備依然還在,執行 rmmodipip命令可以將它刪除。
2)BGP
邊界網關協議(BorderGateway Protocol, BGP)是互聯網上一個核心的去中心化的自治路由協議。它通過維護IP路由表或‘前綴’表來實現自治系統(AS)之間的可達性,屬于矢量路由協議。BGP不使用傳統的內部網關協議(IGP)的指標,而是基于路徑、網絡策略或規則集來決定路由。因此,它更適合被稱為矢量性協議,而不是路由協議,通俗的說就是將接入到機房的多條線路(如電信、聯通、移動等)融合為一體,實現多線單IP;
BGP 機房的優點:服務器只需要設置一個IP地址,最佳訪問路由是由網絡上的骨干路由器根據路由跳數與其它技術指標來確定的,不會占用服務器的任何系統;
官方提供的calico.yaml模板里,默認打開了ip-ip功能,該功能會在node上創建一個設備tunl0,容器的網絡數據會經過該設備被封裝一個ip頭再轉發。這里,calico.yaml中通過修改calico-node的環境變量:CALICO_IPV4POOL_IPIP來實現ipip功能的開關:默認是Always,表示開啟;Off表示關閉ipip。
上一篇: mysql如何將bin-log日志文件轉為sql文件
下一篇: web服務器的安裝與配置