AKS 邊緣程式集的運作方式

已完成

在這裡,您將了解有關「AKS 邊緣程式集」的所有部分以及它如何使用 Windows IoT 企業版來部署輕量型的 Kubernetes 平台 (並具有從核心到雲端的支援):

  • 叢集和節點
  • 網路
  • 部署架構
  • 儲存體
  • 與 Windows 應用程式的互通性
  • 用於管理的 Azure Arc
  • 從核心到雲端支援

叢集和節點

當您建立「AKS 邊緣程式集」部署時,「AKS 邊緣程式集」會為每個已部署的節點建立虛擬機器。 您可以定義您想要為每個 VM 配置的 CPU 和記憶體資源量。 此靜態配置可讓您控制資源的使用方式,並確保主機上執行的應用程式擁有所需的資源。 「AKS 邊緣程式集」可管理 VM 的生命週期、組態和更新。

此圖顯示 AKS 邊緣程式集中的 VM。

節點類型

部署只能在指定的主機電腦上建立一個 Linux VM 和一個 Windows VM。 根據您的部署需求,Linux VM 既可以充當控制平面節點,也可以充當背景工作角色節點。 執行 Windows 節點是選擇性的,如果您需要部署 Windows 容器,您可以建立 Windows 背景工作角色節點。

叢集部署選項

設定機器之後,您可以在下列組態中部署「AKS 邊緣程式集」:

  • 單一電腦叢集:在一台單機上執行 Kubernetes 節點以建立單機叢集。 此部署會使用內部網路交換器來實現節點之間的通訊。 此部署僅支援一個 Linux 節點和一個 Windows 節點 (兩者都在一台單機上執行)。
  • 可調整的叢集:可讓您建立一個可跨多部機器調整的多節點 Kubernetes 叢集。

顯示 AKS 邊緣程式集部署案例的圖表。

網路

為了在 Windows 主機作業系統與 Linux 和 Windows 虛擬機器之間建立通訊通道,「AKS 邊緣程式集」會使用 Hyper-V 網路堆疊。 如需 Hyper-V 網路連接的詳細資訊,請參閱 Hyper-V 網路連接基本概念

單一電腦叢集上,安裝程式和部署機制會處理所有必要的網路連接設定,且不需要額外的步驟或設定來部署叢集。 在可調整的叢集部署中,在不同裝置內執行的節點必須彼此通訊,因此,所有節點都必須連接到相同的網路,而為了實現這種跨裝置的節點到節點通訊,「AKS 邊緣程式集」可調整的叢集部署會使用外部的虛擬交換器。

單機叢集

單機部署會使用內部的虛擬交換器來管理網路連接功能。 這種類型的部署必須有 Linux 節點;Windows 節點是選擇性的。 下圖顯示了使用內部虛擬交換器的單機部署架構:

此圖顯示單一機器叢集上使用內部虛擬交換器的網路架構。

可調整的叢集

可調整的叢集部署會使用外部的虛擬交換器來管理網路連接功能。 部署完成後,所有節點和 Windows 主機作業系統都會使用相同的外部虛擬交換器來連接到外部的網路。 下圖顯示了使用外部虛擬交換器的可調整叢集部署架構:

此圖顯示多節點叢集上使用外部虛擬交換器的網路架構。

部署架構

「AKS 邊緣程式集」部署架構提供了一種具彈性且可調整的方式,用於在邊緣裝置上部署和管理容器化應用程式。 安裝「AKS 邊緣程式集」之後,您可以在 C:\Program Files\AksEdge\aksedge-dcschema.json 中找到完整的 JSON 架構檔案。 下表描述您可以在架構中定義的一些值 (如需完整清單,請參閱部署設定 JSON 參數):

屬性 值類型 描述 預設值 適用的部署類型
SchemaVersion String 指定 JSON 的架構/格式版本。 1.9 單機和完整部署
Version 1.0 指定伺服器執行個體的版本。 1.0 單機和完整部署
DeploymentType [SingleMachineCluster / ScalableCluster] 指定部署類型。 在 ScalableCluster 中,您可以將更多機器新增至叢集基礎結構。 SingleMachineCluster 單機和完整部署
Arc.ClusterName String 叢集的慣用名稱會顯示在 Azure 入口網站中。 <Machinename>-cluster 單機和完整部署
Network.NetworkPlugin [calico / flannel] Kubernetes 網路模型的 CNI 外掛程式選擇。 對於 K8s 叢集,一律使用 calico,而對於 K3s 叢集,一律使用 flannel flannel 單機和完整部署
Machines[].LinuxNode.ControlPlane 布林值 指定您是否希望這個新的部署成為控制平面。 如果為 false,則它是背景工作角色節點。 僅適用於 Linux VM。 false 單機和完整部署
Machines[].LinuxNode.CpuCount [2-x] 為一或多台 VM 保留的 CPU 核心數。 2 單機和完整部署
Machines[].LinuxNode.MemoryInMB [2048-2x] 為一或多台 VM 保留的 RAM 數 (MB)。 2048 單機和完整部署
Machines[].LinuxNode.DataSizeInGB 數值 資料分割區的大小。 對於大型應用程式,我們建議增加此數字。 僅適用於 Linux VM。 10 單機和完整部署
Machines[].LinuxNode.Ip4Address A.B.C.x 指定您的 VM 所採用的 IP 位址。 單機和完整部署
Machines[].WindowsNode.CpuCount [2-x] 為一或多台 VM 保留的 CPU 核心數。 2 單機和完整部署
Machines[].WindowsNode.MemoryInMB [2048-2x] 為一或多台 VM 保留的 RAM 數 (2 的倍數) (MB)。 2048 單機和完整部署
Machines[].WindowsNode.Ip4Address A.B.C.x 指定您的 VM 所採用的 IP 位址。 單機和完整部署

儲存體

在「AKS 邊緣程式集」中執行的應用程式可能需要儲存和擷取資料。 持續性儲存體解決方案可讓您將應用程式資料儲存在執行您的應用程式的 Pod 之外的位置,即使應用程式的 Pod 失效了,也能讓您保持應用程式資料。 Local Path Provisioner 可透過啟用使用各自節點上的本機儲存體來建立永久性磁碟區宣告的能力,為 Kubernetes 使用者提供了一種使用每個節點中的本機儲存體的方法。

也可以使用 NFS 之類的外部儲存體提供者,將儲存體可用性與節點的生命週期分開。 如需 NFS 外掛程式的詳細資訊,請參閱 nfs-subdir-external-provisioner

與 Windows 應用程式的互通性

Windows 提供了豐富的應用程式生態系統、使用者體驗和強大的安全性,並支援現今運營技術 (OT) 的大部分基礎結構,從人機介面 (HMI)、機器人、可程式邏輯控制器 (PLC) 到醫療設備等。許多雲端原生工作負載都是在 Linux 上建置的,您面臨了必須引入 Linux 系統才能利用雲端原生解決方案的挑戰。 「AKS 邊緣程式集」可提供原生 Windows 應用程式與容器化 Linux 工作負載之間的互通性。 這種互通性可讓您使用一組廣泛的 AI 功能來快速進行創新,並在最少中斷干擾的情況下推動您的邊緣創新向前發展。

此圖顯示 AKS 邊緣程式集與 Windows 應用程式的互通性。

用於管理的 Azure Arc

「AKS 邊緣程式集」叢集可以啟用 Arc 服務,並當作 Azure 資源從 Azure 入口網站進行管理。 一旦您的「AKS 邊緣程式集」叢集連接到 Azure Arc 之後,它就會將 Azure 平台延伸到邊緣,並提供像治理、監視、應用程式、機器學習和資料服務等核心服務。 它也有助於將 DevOps 做法帶到任何地方,並使用 GitOps 和 Flux 反覆進行建置,以無縫地管理應用程式部署。

從核心到雲端支援

「AKS 邊緣程式集」可在多個 Windows 版本上使用,包括 Windows 10/11 (IoT 企業版/企業版/專業版) 或 Windows (Server / Server IoT) 2019/2022。 Linux VM 採完全受控模式,並以經過策劃的 CBL-Mariner 映像為基礎,此映像是輕量型映像,可協助縮小受攻擊面、確保更好的效能並減少修補弱點的負荷。 您可以透過啟用 Arc 服務的 Kubernetes 跨雲端和內部部署來管理您的所有容器和 Kubernetes 組態。 這種多層式方法可確保整個軟體堆疊的安全性和更新,以便您的商務應用程式能夠可靠地執行。

Windows IoT 企業版專注於 OT 場景和體驗,例如進階的鎖定功能、資訊亭和雙操作員模式、裝置映像優化能力和 10 年的長期服務通道 (LTSC)。 Windows IoT 企業版 (結合基於 Linux 和啟用 Arc 服務的 Kubernetes) 在邊緣使用 「AKS 邊緣程式集」,讓您享有從核心到雲端的完全支援堆疊的好處。