Azure Arc 所啟用 AKS 的 Kubernetes 叢集架構和工作負載

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

Azure Stack HCI 上的 Azure Kubernetes Service (AKS) 和 Windows Server,是 Azure Stack HCI 支援的企業級 Kubernetes 容器平台。 此平台包含 Microsoft 支援的核心 Kubernetes、專用 Windows 容器主機,以及支援 Microsoft 的 Linux 容器主機,其目標是營造簡單的部署和生命週期管理體驗。

本文介紹核心 Kubernetes 基礎結構元件,例如控制平面、節點和節點集區。 此外也介紹 Pod、部署和集合等工作負載資源,並說明如何將資源分組到命名空間中。

Kubernetes 叢集架構

Kubernetes 是 Azure Arc 所啟用 AKS 的核心元件。AKS 會使用一組預先定義的組態來部署 Kubernetes 叢集 () 有效且考慮到延展性。

部署作業會建立多個 Linux 或 Windows 虛擬機,並將其聯結在一起,以建立 Kubernetes 叢集 () 。

注意

為了協助改善系統的可靠性,如果您在叢集中執行多個叢集共用磁碟區 (CSV) ,則默認虛擬機數據會自動分散到叢集中所有可用的 CSV。 這可確保應用程式在 CSV 中斷時仍能運作。 此設定僅適用於新安裝,不包含升級。

部署的系統已準備好接收標準 Kubernetes 工作負載、調整這些工作負載,以及視需要增加和減少虛擬機器的數目。

Azure Kubernetes Service 叢集具有下列元件:

  • 管理叢集 (也稱為 AKS 主機) 提供核心協調流程機制,以及用來部署和管理一或多個工作負載叢集的介面。
  • 工作負載叢集 (也稱為目標叢集) 是部署容器化應用程式的位置。

此圖顯示 Azure Stack HCI 和 Windows Server 上 Azure Kubernetes Service 的技術架構。

管理由 Arc 啟用的 AKS

您可以使用下列管理選項來管理 AKS:

  • Windows Admin Center 為 Kubernetes 操作員提供直覺式 UI 來管理叢集的生命週期。
  • PowerShell 模組可讓您輕鬆地下載、設定及部署 AKS。 PowerShell 模組也支援部署和設定其他的工作負載叢集,以及重新設定現有的叢集。

管理叢集

當您建立 Kubernetes 叢集時,系統會自動建立及設定管理叢集。 此管理叢集負責佈建和管理執行工作負載的工作負載叢集。 管理叢集主機包含下列核心 Kubernetes 元件:

  • API 伺服器:API 伺服器是基礎 Kubernetes API 的公開方式。 此元件提供與管理工具的互動,例如 Windows Admin Center、PowerShell 模組或 kubectl
  • 負載平衡器:負載平衡器是單一專用Linux VM,其具有管理叢集 API 伺服器的負載平衡規則。

工作負載叢集

工作負載叢集是 Kubernetes 的高可用性部署,使用 Linux VM 執行 Kubernetes 控制平面元件和 Linux 背景工作節點。 Windows Server Core 型 VM 可用來建立 Windows 背景工作角色節點。 單一管理叢集可以管理一個或多個工作負載叢集。

工作負載叢集元件

工作負載叢集有許多元件,如下列各節所述。

控制平面

  • API 伺服器:API 伺服器允許與 Kubernetes API 互動。 此元件提供與管理工具的互動,例如 Windows Admin Center、PowerShell 模組或 kubectl
  • Etcd:Etcd 是分散式索引鍵/值存放區,可儲存叢集生命週期管理所需的數據。 其中還會儲存控制平面狀態。

負載平衡器

負載平衡器是執行 Linux 和 HAProxy + KeepAlive 的虛擬機器,為管理叢集所部署的工作負載叢集提供負載平衡服務。 針對每個工作負載叢集,AKS 至少會新增一部負載平衡器虛擬機。 在工作負載叢集上建立的任何類型 LoadBalancer Kubernetes 服務最終會在 VM 中建立負載平衡規則。

背景工作節點

若要執行應用程式和支援的服務,您必須具備 Kubernetes 節點。 AKS 工作負載叢集具有一或多個背景工作角色節點。 背景工作角色節點可作為執行 Kubernetes 節點元件的虛擬機器 (VM),並裝載組成應用程式工作負載的 Pod 和服務。

您可以在 AKS 工作負載叢集上部署核心 Kubernetes 工作負載元件,例如 Pod 和部署。

Pod

Kubernetes 會使用 Pod 執行您的應用程式執行個體。 一個 Pod 代表應用程式的單一執行個體。 一般而言,Pod 有 1:1 與容器的對應,但 Pod 可以包含多個容器的進階案例。 這些多容器 Pod 會一起排程於相同的節點上,並允許容器共用相關資源。 如需詳細資訊,請參閱 Kubernetes PodKubernetes Pod 生命週期

部署

一項部署可代表一或多個由 Kubernetes 部署控制器管理的相同 Pod。 部署會定義 (Pod) 建立的 本數目,而 Kubernetes 排程器可確保如果 Pod 或節點遇到問題,則會在狀況良好的節點上排程其他 Pod。 如需詳細資訊,請參閱 Kubernetes 部署

StatefulSet 和 Daemonset

部署控制器會使用 Kubernetes 排程器,在任何具有可用資源的可用節點上執行指定數目的複本。 這種使用部署的方法可能足以用於無狀態應用程式,但不適用於需要持續性命名慣例或記憶體的應用程式。 對於需要有複本存在於叢集內各個節點 (或選取的節點) 上的應用程式,部署控制器並不會考量複本分散到各節點間的方式。

  • StatefulSet:StatefulSet 類似於一或多個相同的 Pod 建立和管理中的部署。 StatefulSet 中的複本會依照正常、循序的方法進行部署、調整、升級和終止。 透過 StatefulSet,在複本重新排程後,命名慣例、網路名稱和儲存體在複本重新排程後仍可持續保存。 StatefulSet 中的複本會排程並跨 Kubernetes 叢集中的任何可用節點執行。 如果您需要確保集合中至少有一個 Pod 在節點上執行,您可以改用 DaemonSet。 如需詳細資訊,請參閱 Kubernetes StatefulSet
  • DaemonSets:針對特定記錄收集或監視需求,您可能需要在所有或選取的節點上執行指定的 Pod。 DaemonSet 再次用來部署一或多個相同的 Pod,但 DaemonSet 控制器可確保指定的每個節點都會執行 Pod 的實例。 如需詳細資訊,請參閱 Kubernetes DaemonSet

命名空間

Kubernetes 資源 (例如 Pod 和部署) 會依邏輯分組到命名空間中。 這些群組可讓您以邏輯方式分割工作負載叢集,並限制存取權以建立、檢視或管理資源。 例如,您可以建立命名空間以區隔商務群組。 使用者只能與其指派的命名空間內包含的資源互動。 如需詳細資訊,請參閱 Kubernetes 命名空間

當您在 Arc 所啟用的 AKS 上建立 Azure Kubernetes Service 叢集時,可以使用下列命名空間:

  • default:未提供Pod和部署時,預設會建立Pod和部署的命名空間。 在較小的環境中,您可以直接將應用程式部署到預設命名空間中,而無須建立額外的邏輯分隔。 當您與 Kubernetes API 互動時 (例如 kubectl get pods),若未指定命名空間,將會使用預設值。
  • kube-system:核心資源所在的命名空間,例如 DNS 和 Proxy 之類的網路功能,或 Kubernetes 儀錶板。 您通常不會將自己的應用程式部署到此命名空間中。
  • kube-public:通常不會使用命名空間,但可用於整個叢集上可見的資源,而且可由任何用戶檢視。

祕密

Kubernetes 秘密 可讓您儲存和管理敏感性資訊,例如密碼、OAuth 令牌和安全殼層 (SSH) 密鑰。 根據預設,Kubernetes 會將秘密儲存為未加密的base64編碼字串,而且任何具有API存取權的人都可以將其擷取為純文字。 如需詳細資訊,請參閱 Kubernetes 秘密

永續性磁碟區

持續性磁碟區是 Kubernetes 叢集中的儲存體資源,已由系統管理員佈建,或使用儲存類別動態佈建。 若要使用持續性磁碟區,Pod 會使用 PersistentVolumeClaim 要求存取權。 如需詳細資訊,請參閱持續性磁碟區

混合作業系統部署

如果指定的工作負載叢集同時包含 Linux 和 Windows 背景工作角色節點,則必須將工作負載排程到可支援佈建工作負載的作業系統上。 Kubernetes 提供兩種機制,以確保工作負載落在具有目標作業系統的節點上:

  • 節點選取器 是Pod規格中的簡單欄位,可限制Pod只排程到符合作業系統狀況良好的節點。
  • 污點和容許處會一起運作,以確保不會將 Pod 意外排程至節點上。 節點可以「被寫入」,使其不接受不會透過Pod規格中的「容忍」明確容許其 Taint 的 Pod。

如需詳細資訊,請參閱節點選取器以及汙點和容許處。

後續步驟

在本文中,您已瞭解 Azure Arc 所啟用 AKS 的叢集架構,以及工作負載叢集元件。 如需這些概念的詳細資訊,請參閱下列文章: