Kubernetes (有時也稱為 K8s) 為開放式原始碼平台,可跨越機器叢集,管理和自動化應用程式容器的部署、排程、監控、維護和作業。
Kubernetes 網路連線為 Google 所開發的技術,能協助管理員在私有雲、公有雲和混合雲基礎架構之間移動工作負載。開發人員則可以使用 Kubernetes 將所需的基礎架構封裝於軟體應用程式中,並迅速部署新版本。
Kubernetes 網路讓 Kubernetes 元件不僅能彼此通訊,也能與其他應用程式通訊。Kubernetes 平台不同於其他網路平台,當中採用扁平化網路架構,能免除對應主機連接埠和容器連接埠的需要。Kubernetes 平台可用來執行分散式系統,在無需動態配置連接埠的情況下,讓不同應用程式共用機器。
Kubernetes 機組網路會連接多個密切相關的元件:
Kubernetes 平台中的不同元件 (機組、容器、節點和應用程式),使用不同的網路方法進行通訊。其中有容器對容器通訊、機組對機組通訊、機組對服務通訊,以及外部網路對服務通訊。
機組對機組通訊為 Kubernetes 的重要基礎。機組會依照網路外掛程式所設定的網路原則相互通訊,既不用在雙方之間明確建立連結,也無需對應容器連接埠和主機連接埠。原因在於,機組共用相同的網路命名空間,並擁有專屬 IP 位址,因此機組可以使用 localhost 來尋找其他所有機組並與之通訊,而不必使用網路位址轉譯 (NAT)。
Kubernetes 網路所面臨的其中一項挑戰,在於如何因應內部 (東西向) 流量與外部 (南北向) 流量的互動方式;畢竟,其內部網路是與外部網路相互隔離。然而,往返於節點之間的流量,也會在節點和外部實體機器或虛擬機之間來回流動。您可以透過幾個不同方法,將外部流量導入 Kubernetes 叢集:
Kubernetes 網路的另一項重要層面,就是容器網路介面,簡稱 CNI。容器網路介面可連接不同節點的機組,因而能當作網路命名空間和網路外掛程式之間的介面,或是網路提供者和 Kubernetes 網路之間的介面。市面上有許多容器網路介面提供者和外掛程式可供選用,而且各有不同的功能與特點。隨著同機組的佈建和銷毀,容器網路介面外掛程式可據此動態設定網路與資源。在建立和刪除容器時,這些外掛程式會負責佈建與管理 IP 位址。Kubernetes 的預設網路提供者為 Kubernetes,但 Flannel、Calico、Canal 和 Weave Net 等容器網路介面外掛程式,都提供額外功能。
網路管理員可透過不同方式實作 Kubernetes 網路模式。下列 Kubernetes 網路實作範例,皆已入列 Gartner 公司 2019 年《資料中心網路魔力象限評比》(Magic Quadrant for Data Center Networking) 報告的「前瞻性」排行榜:
VMware NSX Data Center 提供完整涵蓋第 2-7 層的網路與安全性虛擬化平台,可做為單一入口,讓您透過單一介面就能管理整個網路。
VMware Enterprise PKS 快速入門。透過高生產力且高效率的方式部署、執行和管理 Kubernetes,以進行生產作業。
為您的容器化應用程式和微服務提供完整堆疊的整合式網路與安全性。
快速建置應用程式、一致地執行開放式原始碼 Kubernetes,並信心十足地管理整個應用範圍。