Azure Kubernetes Service (AKS) 的核心概念
本文將說明 Azure Kubernetes Service (AKS) 的核心概念,其為受控 Kubernetes 服務,可用於在 Azure 上大規模部署和管理容器化應用程式。
什麼是 Kubernetes?
Kubernetes 是開放原始碼容器協調流程平台,可用於自動部署、縮放和管理容器化應用程式。 如需詳細資訊,請參閱官方 Kubernetes 文件。
什麼是 AKS?
AKS 是一種受控 Kubernetes 服務,可簡化利用 Kubernetes 部署、管理及縮放容器化應用程式的過程。 如需詳細資訊,請參閱什麼是 Azure Kubernetes Service (AKS)?
叢集元件
AKS 叢集分為兩個主要元件:
- 控制平面:控制平面會提供核心 Kubernetes 服務和應用程式工作負載的協調流程。
- 節點:節點為執行應用程式的基礎虛擬機器 (VM)。
控制平面
Azure 受控控制平面是由多個可管理叢集的元件所組成:
元件 | 描述 |
---|---|
kube-apiserver | API 伺服器 (kube-apiserver) 會公開 Kubernetes API,以啟用叢集內外針對叢集的要求。 |
etcd | etcd 為擁有高可用性的金鑰值存放區,用以維護 Kubernetes 叢集和設定的狀態。 |
kube-scheduler | 排程器 (kube-scheduler) 可協助進行排程決策、監視未指派節點的新 Pod,並選取要用於執行的節點。 |
kube-controller-manager | 控制器管理員 (kube-controller-manager) 會執行控制器流程,例如在節點故障時進行通知與處理。 |
cloud-controller-manager | 雲端控制器管理員 (cloud-controller-manager) 會嵌入特定雲端的控制邏輯,以執行特定雲端提供者的控制器。 |
節點
各個 AKS 叢集中至少會有一個節點,而此類節點即為用於執行 Kubernetes 節點元件的 Azure 虛擬機器 (VM)。 以下元件會在每個節點上執行:
元件 | 描述 |
---|---|
kubelet | kubelet 可確保容器在 Pod 中執行。 |
kube-proxy | kube-proxy 為用於維護節點上網路規則的網路 Proxy。 |
容器執行階段 | 容器執行階段可管理容器的執行與生命週期。 |
節點組態
VM 大小與映像
節點的 Azure VM 大小會定義可用的 CPU、記憶體、大小及儲存體類型 (例如,高效能 SSD 或一般 HDD)。 所選擇的 VM 大小則取決於工作負載需求,以及計劃在每個節點上執行的 Pod 數目。 如需詳細資訊,請參閱 Azure Kubernetes Service (AKS) 支援的 VM 大小。
在 AKS 中,叢集節點的 VM 映像是以 Ubuntu Linux、Azure Linux 或 Windows Server 2022 為基礎。 您建立 AKS 叢集或擴增節點數目時,Azure 平台即會自動建立並設定所要求的 VM 數目。 代理程式節點會以標準 VM 計費,因此會自動套用任何 VM 大小折扣,包括 Azure 保留。
作業系統磁碟
只有在不支援暫時性 OS 磁碟且未指定預設 OS 磁碟大小時,才會在新叢集或節點集區上使用預設 OS 磁碟大小。 如需詳細資訊,請參閱預設 OS 磁碟大小調整與暫時性 OS 磁碟。
資源保留
AKS 會使用節點資源來協助節點作為叢集的一部分運作。 此方法可能導致節點的資源總量與 AKS 中可配置的資源量不一致。 為了維持節點的效能與功能,AKS 會在每個節點上保留兩種類型的資源,包括 CPU 與記憶體。 如需詳細資訊,請參閱在 AKS 保留資源。
OS
AKS 支援 Ubuntu 22.04 和 Azure Linux 2.0 作為 Linux 節點集區的節點作業系統。 針對 Windows 節點集區,AKS 支援以 Windows Server 2022 作為預設作業系統。 在 Kubernetes 1.32 版生命週期結束之後,Windows Server 2019 即將淘汰,未來版本將不再支援。 若要升級 Windows 作業系統版本,請參閱從 Windows Server 2019 升級至 Windows Server 2022。 如需有關在 AKS 上使用 Windows Server 的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 中的 Windows 容器考量。
容器執行階段
容器執行階段是在節點上執行容器和管理容器映像的軟體。 執行階段可將系統呼叫或作業系統特定功能抽象化,以在 Linux 或 Windows 上執行容器。 針對 Linux 節點集區,containerd
用於 Kubernetes 1.19 版和更高版本。 針對 Windows Server 2019 和 2022 節點集區,containerd
已正式推出,而且是 Kubernetes 1.23 和更高版本中唯一的執行階段選項。
Pod
Pod 是一或多個容器的群組,其中容器會共用相同的網路與儲存體資源,以及如何執行容器的規格。 Pod 通常對應至一個容器,但也可在 Pod 中執行多個容器。
節點集區
在 AKS 中,相同設定的節點會一起分組到節點集區中。 這些節點集區中,會包含用於執行應用程式的基礎虛擬機器擴展集與虛擬機器 (VM)。 當您建立 AKS 叢集時,您要定義初始的節點數目及其大小 (SKU),這會建立一個系統節點集區。 系統節點集區的主要用途是裝載重要系統 Pod,例如 CoreDNS 和 konnectivity
。 若要支援具有不同計算或儲存體需求的應用程式,您可以建立的使用者節點集區。 使用者節點集區主要用來託管您的應用程式 Pod。
如需詳細資訊,請參閱在 AKS 中建立節點集區與在 AKS 中管理節點集區。
節點資源群組
在 Azure 資源群組中建立 AKS 叢集後,AKS 資源提供者即會自動建立名為「節點資源群組」的第二個資源群組。 此資源群組會包含所有與該叢集相關聯的基礎結構資源,包括虛擬機器 (VM)、虛擬機器擴展集,以及儲存體。
如需詳細資訊,請參閱以下資源:
命名空間
Kubernetes 資源 (例如 Pod 和部署) 會以邏輯方式分組為「命名空間」,以分隔 AKS 叢集,並建立、檢視或管理對資源的存取。
根據預設,AKS 叢集中會建立下列命名空間:
命名空間 | 描述 |
---|---|
預設值 | 若使用預設命名空間,則即可開始使用叢集資源,不必建立新的命名空間。 |
kube-node-lease | kube-node-lease 命名空間允許節點將其可用性傳送給控制平面。 |
kube-public | kube-public 命名使用通常不會使用,但可用於讓所有使用者在整個集群中都可檢視資源。 |
kube-system | Kubernetes 會使用 kube-system 命名空間以管理叢集資源,例如 coredns 、konnectivity-agent 與 metrics-server 。 |
叢集模式
在 AKS 中,可利用 [自動 (預覽)] 或 [標準] 模式來建立叢集。 AKS 自動模式可提供完整受控程度更高的體驗,可管理叢集設定,包括節點、縮放、安全性和其他預先設定的設定。 透過 AKS 標準模式則可控制更多叢集設定,包括管理節點集區、縮放和其他設定。
如需詳細資訊,請參閱 AKS 自動與標準模式的功能比較。
定價層
AKS 針對叢集管理提供三種定價層:免費、標準和進階。 根據所選擇的定價層,可用的叢集管理功能將有所不同。
如需詳細資訊,請參閱 AKS 叢集管理定價層。
支援的 Kubernetes 版本
如需詳細資訊,請參閱 AKS 支援的 Kubernetes 版本。
下一步
如需有關 AKS 核心概念的詳細資訊,請參閱下列資源: