什麼是 Kubernetes 網路?

Kubernetes (有時也稱為 K8s) 為開放式原始碼平台,可跨越機器叢集,管理和自動化應用程式容器的部署、排程、監控、維護和作業。

Kubernetes 網路連線為 Google 所開發的技術,能協助管理員在私有雲、公有雲和混合雲基礎架構之間移動工作負載。開發人員則可以使用 Kubernetes 將所需的基礎架構封裝於軟體應用程式中,並迅速部署新版本。


Kubernetes 網路讓 Kubernetes 元件不僅能彼此通訊,也能與其他應用程式通訊。Kubernetes 平台不同於其他網路平台,當中採用扁平化網路架構,能免除對應主機連接埠和容器連接埠的需要。Kubernetes 平台可用來執行分散式系統,在無需動態配置連接埠的情況下,讓不同應用程式共用機器。

使用軟體定義的應用程式服務進行現代化負載平衡

深入瞭解 

什麼是 Kubernetes 機組網路?

Kubernetes 機組網路會連接多個密切相關的元件:

  • 機組:Kubernetes 機組的概念,擷取自大自然中的群集 (例如豆莢或鯨群)。機組為集結多個容器的群組,當中容器會共用同一節點的網路和儲存資源。機組是由 API 伺服器負責建立,並由控制器進行配置。每個機組都將獲派一組 IP 位址,而機組中所有容器則共用相同的儲存空間、IP 位址與連接埠空間 (網路命名空間)。 
  • 容器:Kubernetes 容器就如同虛擬機,可讓多個應用程式共用其作業系統 (OS)。容器擁有專屬的檔案系統、CPU、記憶體和處理空間。容器一律建立在機組中,而每個機組則可建立多個容器。機組中的容器會一起移動、排程和終止。機組可跨雲端移動。容器可透過容器網路來連接其他容器、主機和外部網路。
  • 節點:機組一律在工作節點中執行。節點為執行容器化應用程式的機器。Kubernetes 會將這些節點分群為多個叢集。
  • 主要節點:每個節點叢集至少會有一個主要節點,以負責管理工作節點。主要節點能與叢集中的每個節點通訊,或與任何個別機組直接通訊。

Kubernetes 中的網路會如何運作?

Kubernetes 平台中的不同元件 (機組、容器、節點和應用程式),使用不同的網路方法進行通訊。其中有容器對容器通訊、機組對機組通訊、機組對服務通訊,以及外部網路對服務通訊。

機組對機組通訊為 Kubernetes 的重要基礎。機組會依照網路外掛程式所設定的網路原則相互通訊,既不用在雙方之間明確建立連結,也無需對應容器連接埠和主機連接埠。原因在於,機組共用相同的網路命名空間,並擁有專屬 IP 位址,因此機組可以使用 localhost 來尋找其他所有機組並與之通訊,而不必使用網路位址轉譯 (NAT)。 

Kubernetes 網路所面臨的其中一項挑戰,在於如何因應內部 (東西向) 流量與外部 (南北向) 流量的互動方式;畢竟,其內部網路是與外部網路相互隔離。然而,往返於節點之間的流量,也會在節點和外部實體機器或虛擬機之間來回流動。您可以透過幾個不同方法,將外部流量導入 Kubernetes 叢集:

  • LoadBalancer:LoadBalancer 是將服務外連至網際網路的標準方式。在這個情境中,網路負載平衡器會將所有外部流量轉送至服務。而每個服務都有專屬 IP 位址。
  • ClusterIP:ClusterIP 是用來進行內部通訊的預設 Kubernetes 服務。不過,外部流量可透過 Proxy 存取預設的 Kubernetes ClusterIP 服務。因此,ClusterIP 相當適合用來進行服務偵錯,或顯示內部控制面板。 
  • NodePort:NodePort 可開啟節點或虛擬機上的連接埠,並將流量從連接埠轉送至服務。NodePort 經常用於非持續可用的服務上,例如示範應用程式。
  • Ingress:Ingress 負責擔任路由器或控制器,並透過負載平衡器將流量路由至服務。如果有意使用相同 IP 位址來公開多個服務,Ingress 就能派上用場。

Kubernetes 網路的另一項重要層面,就是容器網路介面,簡稱 CNI。容器網路介面可連接不同節點的機組,因而能當作網路命名空間和網路外掛程式之間的介面,或是網路提供者和 Kubernetes 網路之間的介面。市面上有許多容器網路介面提供者和外掛程式可供選用,而且各有不同的功能與特點。隨著同機組的佈建和銷毀,容器網路介面外掛程式可據此動態設定網路與資源。在建立和刪除容器時,這些外掛程式會負責佈建與管理 IP 位址。Kubernetes 的預設網路提供者為 Kubernetes,但 Flannel、Calico、Canal 和 Weave Net 等容器網路介面外掛程式,都提供額外功能。

 

如何實作 Kubernetes 網路

網路管理員可透過不同方式實作 Kubernetes 網路模式。下列 Kubernetes 網路實作範例,皆已入列 Gartner 公司 2019 年《資料中心網路魔力象限評比》(Magic Quadrant for Data Center Networking) 報告的「前瞻性」排行榜:

  • Big Switch Networks 公司的 Big Cloud Fabric:這是一個雲原生網路架構,可在私有雲環境中執行 Kubernetes。
  • Cumulus NetQ:這款以遙測技術為基礎的架構系統,可深入掌握容器部署作業。
  • Dell EMC:這款雲端平台同時支援傳統應用程式和雲原生環境,並為 Kubernetes 與容器提供整合式支援。
  • VMware NSX-T:這款網路虛擬化與安全性平台可將多雲或多虛擬化管理程序環境的網路虛擬化,包括原生容器網路。

以 Kubernetes 進行網路連線

Video Play Icon

VMware Kubernetes 針對網路提供的相關產品、解決方案與資源

VMware NSX:領先業界的企業網路與安全性虛擬化平台

VMware NSX Data Center 提供完整涵蓋第 2-7 層的網路與安全性虛擬化平台,可做為單一入口,讓您透過單一介面就能管理整個網路。

VMware Enterprise PKS

VMware Enterprise PKS 快速入門。透過高生產力且高效率的方式部署、執行和管理 Kubernetes,以進行生產作業。

使用 VMware NSX 推動容器網路

為您的容器化應用程式和微服務提供完整堆疊的整合式網路與安全性。

VMware Tanzu

快速建置應用程式、一致地執行開放式原始碼 Kubernetes,並信心十足地管理整個應用範圍。