這很重要
AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:
Azure Kubernetes 應用網路架構分為三個層: 管理平面、 控制平面與 資料平面。 每個層都有不同的責任,共同提供一個完全管理的環境式 Azure Kubernetes Service (AKS)服務網路解決方案。 此架構允許服務間安全且以政策驅動的通訊,無需附加附加工具或更改應用程式。
本文概述了 Azure Kubernetes 應用網路的架構層、它們如何互動,以及實現可擴展跨叢集通訊的多叢集服務發現模型。 欲了解更多關於 Azure Kubernetes 應用網路的資訊,請參閱 AKS Azure Kubernetes 應用網路概述。
應用網路架構層概述
架構層負責以下職責:
- 管理層:處理 Azure 資源操作,如建立、更新及刪除應用網路資源,以及管理叢集成員。
- 控制平面:管理每個成員叢集的網狀設定、憑證生命週期及服務發現。
- 資料平面:直接在成員叢集內使用環境模式保護服務對服務流量,無需 sidecar 或應用程式變更。
對於多叢集部署,應用程式網路會同步成員叢集間的服務發現資訊,使服務能跨叢集邊界透明通訊。
下圖說明 Azure Kubernetes 應用網路的架構層,以及它們彼此間和與 AKS 叢集的互動方式:
管理平面
管理層是處理所有應用網路資源操作的 Azure 資源提供者。 當你建立應用程式網路資源或加入成員叢集時,管理平面會驗證請求,並配置支援 Azure 資源(如 Azure Key Vault)作為憑證儲存,並協調建立成員區域控制平面。
你透過 Azure CLI(az appnet)或 ARM API 與管理層互動。 管理平面協調所有下游配置,確保控制平面與資料平面元件能在無需人工介入的情況下部署。
控制平面
控制平面是完全託管的基礎設施,運行於你的 Azure Kubernetes Service (AKS) 叢集之外。 當成員叢集加入應用程式網路時,會在與成員叢集相同的 Azure 區域內配置專用控制平面,以保持控制平面與資料平面元件間的低延遲。
備註
不同 Azure 區域中的成員已在其各自區域部署控制平面。
控制平面包含以下元件:
- Istiod:連接成員叢集的 Kubernetes API 伺服器,以發現服務並監控設定變更。 它會將 xDS 配置推送到資料平面的 ztunnel 和 waypoint 代理。 在多叢集部署中,Istiod 也會連接其他成員叢集的 Kubernetes API 伺服器以取得服務發現資訊,實現跨叢集服務的發現。
- 憑證管理:配置並輪替由 Azure Key Vault 支援的 CA 憑證。 根 CA 會在所有成員叢集間建立共享的信任邊界,每個成員會收到一個中介 CA,並發出短壽命的工作負載憑證。 欲了解更多資訊,請參閱 Azure Kubernetes 應用網路安全性概述。
- 生命週期管理:部署並升級成員叢集中所有資料平面元件,包括 ztunnel、Istio CNI、航點代理及自訂資源定義(CRD)。 欲了解更多資訊,請參閱 「為 Azure Kubernetes Application Network 成員配置升級」。
資料平面
資料平面由部署到成員叢集的applink-system命名空間內的元件組成。 應用程式網路使用 Istio 環境模式,因此不會將 sidecar 插入到您的工作負載。
資料平面包含以下元件:
- Ztunnel:一個節點層級的 L4 代理伺服器,部署為 DaemonSet。 Ztunnel 攔截節點上的服務對服務流量,透明建立 mTLS 連線,並強制執行 L4 授權政策。
- 航點代理:可選的每個命名空間 L7 代理,提供 HTTP 路由、流量轉移、錯誤注入及 L7 授權。 當命名空間有設置 L7 策略時,才會部署 Waypoint 代理。
- 東西向閘道器:處理多叢集部署中的跨叢集流量。 你負責在每個成員叢集中東西向閘道器之間提供網路連線。 欲了解更多資訊,請參閱 多叢集服務發現。
- Istio CNI:一個用於設定 pod 網路以攔截環境網狀流量的 DaemonSet。
- CRD:Kubernetes 自訂資源定義,用於配置流量管理與安全政策。
當服務間有請求時,ztunnel 會攔截流量,建立與目的地 ztunnel 的 mTLS 連線,並將請求送達目的工作負載。 若設定了 L7 政策,流量會在抵達目的地前經過航點代理。 對於跨叢集流量,ztunnel 會經過東西向閘道器,以抵達遠端成員叢集中的工作負載。
多叢集服務發現
應用網路支援將多個 AKS 叢集連接成統一服務網狀。 一個成員叢集中的服務可以與其他成員叢集的服務進行通訊,並跨叢集邊界強制執行端到端的 mTLS 保護。
在開源的 Istio 多叢集部署中,控制平面通常連接其他叢集的 Kubernetes API 伺服器,以發現服務與配置變更。 應用網路採用類似的服務發現模型,控制平面從成員叢集取得服務資訊,以便跨叢集邊界發現服務。 此方法使成員叢集內的工作負載能解析並與其他叢集中運行的服務溝通,而無需更改應用程式。 新增成員叢集可擴大網格成員資格,使新叢集中的服務能被其他成員發現。
跨叢集流量會流經部署於每個成員叢集的東西向閘道。 你負責在成員叢集東西向閘道之間提供網路可達性——例如透過VNet對等、VPN或其他連接解決方案。 所有跨叢集流量皆以 mTLS 加密。
元件互動方式
控制平面連接成員叢集的 Kubernetes API 伺服器,監控服務與設定變更,並將 xDS 更新推送至 ztunnel 與 waypoint 代理伺服器。 當多個成員存在時,每個控制平面也會透過受管理訊息交換服務資訊,確保每個成員都能一致地檢視整個網格中的所有服務。
憑證管理會在建立應用網路資源時設置根CA,並為每個成員叢集發出中間CA。 工作量證書有24小時有效期,並每12小時自動輪替一次。 整個憑證生命週期,從根憑證憑證到中介憑證及工作負載憑證,皆可無需人工介入地管理。
完整的憑證階層與輪替時間表,請參閱 Azure Kubernetes 應用網路安全性概述。
相關內容
欲了解更多關於 Azure Kubernetes 應用網路的資訊,請參閱以下文章: