共用方式為


Windows Server 上 AKS 的 Kubernetes 叢集架構和工作負載

適用於:在 Windows Server 上運行的 AKS

Windows Server 上的 Azure Kubernetes Service (AKS) 是企業級 Kubernetes 容器平臺。 它包含Microsoft支援的核心 Kubernetes、用途建置的 Windows 容器主機,以及Microsoft支援的 Linux 容器主機,目標是擁有簡單的部署和生命週期管理體驗。

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

Kubernetes 叢集架構

Kubernetes 是 Windows Server 上 AKS 的核心元件。 AKS 會使用一組預先定義的組態,有效地部署 Kubernetes 叢集,並考慮到延展性。

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

注意

為了協助改善系統的可靠性,如果您在叢集中執行多個叢集共用磁碟區(CSV),則根據預設,虛擬機數據會自動分散到叢集中所有可用的 CSV。 這可確保應用程式在發生 CSV 中斷時倖存下來。 這隻適用於新的安裝(而非升級)。

已部署的系統已準備好接收標準 Kubernetes 工作負載、調整這些工作負載,或甚至視需要相應增加和減少叢集數目。

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

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

顯示 Windows Server 上 Azure Kubernetes Service 技術架構的圖例。

管理 Windows Server 上的 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 工作負載叢集有一或多個 工作節點。 工作節點作為虛擬機器 (VM) 執行 Kubernetes 節點元件,並承載構成應用程式負載的 Pod 和服務。

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

Pods (群組)

Kubernetes 使用 pods 來執行您應用程式的執行個體。 Pod 代表單一的應用程式實例。 一般而言,Pod 與容器有 1:1 的對應,不過在進階情境下,Pod 可能包含多個容器。 這些多容器 pod 會在相同的節點上一起被安排並允許容器共用相關資源。 如需詳細資訊,請參閱 Kubernetes Pod (英文) 和 Kubernetes Pod 生命週期 (英文)。

部署

部署是由 Kubernetes 部署控制器管理的,包含一個或多個相同的 Pod。 部署會定義要建立的 本數目(Pods),而 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 命名空間

當您在 Windows Server 上的 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要求存取權。 如需詳細資訊,請參閱持續性磁碟區

混合OS部署

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

  • 節點選取器 是在 Pod 規範中的一個簡單欄位,用來限制 Pod 只排程到符合作業系統規範且健康的節點。
  • Taints 和 tolerations 會一起運作,以確保 Pod 不會不小心排程到節點上。 節點可以「受污染」,使其不接受在Pod規格中明確容忍其污點的Pod。

如需詳細資訊,請參閱節點選取器污點和容忍度

下一步

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