網絡模型有了,如何實現呢?網絡
爲了保證網絡方案的標準化、擴展性和靈活性,Kubernetes 採用了 Container Networking Interface(CNI)規範。運維
CNI 是由 CoreOS 提出的容器網絡規範,它使用了插件(Plugin)模型建立容器的網絡棧。性能
CNI 的優勢是支持多種容器 runtime,不單單是 Docker。CNI 的插件模型支持不一樣組織和公司開發的第三方插件,這對運維人員來講頗有吸引力,能夠靈活選擇適合的網絡方案。插件
目前已有多種支持 Kubernetes 的網絡方案,好比 Flannel、Calico、Canal、Weave Net 等。由於它們都實現了 CNI 規範,用戶不管選擇哪一種方案,獲得的網絡模型都同樣,即每一個 Pod 都有獨立的 IP,能夠直接通訊。區別在於不一樣方案的底層實現不一樣,有的採用基於 VxLAN 的 Overlay 實現,有的則是 Underlay,性能上有區別。再有就是是否支持 Network Policy。3d