使用網(wǎng)絡(luò)插件Terway
Terway是阿里云開源的基于專有網(wǎng)絡(luò)VPC的容器網(wǎng)絡(luò)接口CNI(Container Network Interface)插件窃这,支持基于Kubernetes標(biāo)準(zhǔn)的網(wǎng)絡(luò)策略來定義容器間的訪問策略。Terway網(wǎng)絡(luò)插件是ACK自研的網(wǎng)絡(luò)插件辣垒,將原生的彈性網(wǎng)卡分配給Pod實(shí)現(xiàn)Pod網(wǎng)絡(luò),支持基于Kubernetes標(biāo)準(zhǔn)的網(wǎng)絡(luò)策略(Network Policy)來定義容器間的訪問策略寨蹋,并兼容Calico的網(wǎng)絡(luò)策略玖瘸。
在Terway網(wǎng)絡(luò)插件中,每個(gè)Pod都擁有自己網(wǎng)絡(luò)棧和IP地址丸相。同一臺(tái)ECS內(nèi)的Pod之間通信华匾,直接通過機(jī)器內(nèi)部的轉(zhuǎn)發(fā)源梭,跨ECS的Pod通信掂碱、報(bào)文通過VPC的彈性網(wǎng)卡直接轉(zhuǎn)發(fā)。由于不需要使用VxLAN等的隧道技術(shù)封裝報(bào)文湃交,因此Terway模式網(wǎng)絡(luò)具有較高的通信性能迈喉。以網(wǎng)絡(luò)插件為例,圍繞K8s實(shí)現(xiàn)的CNI插件種類豐富得运,數(shù)量繁多置逻。而如何選擇一款穩(wěn)定报慕、高性能忿等,并能支持流量控制、網(wǎng)絡(luò)策略等高級(jí)特性的網(wǎng)絡(luò)插件瘸右,對(duì)于K8s的網(wǎng)絡(luò)運(yùn)行至關(guān)重要娇跟。
以阿里云容器服務(wù)的Terway插件為例,它遵循業(yè)界的CNI設(shè)計(jì)方式太颤,針對(duì)阿里云VPC網(wǎng)絡(luò)進(jìn)行優(yōu)化逞频,在K8s場景下使用,支持網(wǎng)絡(luò)策略栋齿,可以實(shí)現(xiàn)Pod之間的訪問隔離。同時(shí),通過在Pod上聲明annotation: K8s.aliyun.com/ingress-bandwidth和k8s.aliyun.com/egress-bandwidth可以限制Pod的入網(wǎng)和出網(wǎng)帶寬瓦堵。
按照部署和調(diào)用方方式劃分基协,Terway包含Daemon和Binary兩部分,如下圖所示菇用。
Daemon:供Binary調(diào)用澜驮,分配和管理網(wǎng)絡(luò)資源。
Binary:與Kubelet交互及Daemon交互惋鸥,配置Pod的網(wǎng)絡(luò)連接杂穷。
Kubelet監(jiān)聽到Pod創(chuàng)建在自己的節(jié)點(diǎn)上時(shí),會(huì)通過容器運(yùn)行時(shí)創(chuàng)建Sandbox容器卦绣,然后通過cni調(diào)用Terway Binary來處理網(wǎng)絡(luò)命名空間耐量,Terway Binary調(diào)用Terway Daemon來獲取網(wǎng)絡(luò)資源,Terway Daemon調(diào)用Aliyun Open API分配網(wǎng)絡(luò)資源并返回給Terway Binary滤港,最后Terway Binary為容器的網(wǎng)絡(luò)命名空間配置網(wǎng)絡(luò)和聯(lián)通網(wǎng)絡(luò)廊蜒。
使用Flannel網(wǎng)絡(luò)插件
Flannel是社區(qū)提供的一款簡單穩(wěn)定的CNI插件。Flannel網(wǎng)絡(luò)基于阿里云VPC的自定義路由能力溅漾,來實(shí)現(xiàn)跨節(jié)點(diǎn)的Pod直接與VPC的互相訪問山叮。本文介紹如何使用阿里云容器服務(wù)Kubernetes版ACK集群的Flannel網(wǎng)絡(luò)插件。
背景信息
Flannel網(wǎng)絡(luò)模式中Pod的網(wǎng)段獨(dú)立于VPC的網(wǎng)段添履。Pod網(wǎng)段會(huì)按照掩碼(節(jié)點(diǎn)IP數(shù)量)均勻劃分給每個(gè)集群中的節(jié)點(diǎn)屁倔,每個(gè)節(jié)點(diǎn)上的Pod會(huì)從節(jié)點(diǎn)上劃分的網(wǎng)段中分配IP地址。
Terway與Flannel對(duì)比
在創(chuàng)建集群時(shí)暮胧,ACK提供Terway和Flannel兩種網(wǎng)絡(luò)插件:
Terway:是阿里云容器服務(wù)ACK自研的網(wǎng)絡(luò)插件锐借。Terway將阿里云的彈性網(wǎng)卡分配給容器,支持基于Kubernetes標(biāo)準(zhǔn)的網(wǎng)絡(luò)策略來定義容器間的訪問策略叔壤,支持對(duì)單個(gè)容器做帶寬的限流瞎饲。Terway擁有更為靈活的IPAM(容器地址分配)策略,避免地址浪費(fèi)炼绘。如果您不需要使用網(wǎng)絡(luò)策略(Network Policy)嗅战,可以選擇Flannel,其他情況建議選擇Terway俺亮。
Flannel:使用的是簡單穩(wěn)定的社區(qū)Flannel CNI插件驮捍。配合阿里云的VPC的高速網(wǎng)絡(luò),能給集群高性能和穩(wěn)定的容器網(wǎng)絡(luò)體驗(yàn)脚曾。Flannel功能偏簡單东且,支持的特性少。例如本讥,不支持基于Kubernetes標(biāo)準(zhǔn)的網(wǎng)絡(luò)策略(Network Policy)珊泳。