叢集擴充功能

Helm 圖表透過提供定義、安裝和升級最複雜 Kubernetes 應用程式所需的建置區塊,協助您管理 Kubernetes 應用程式。 叢集延伸模組功能以 Helm 的封裝元件為建置基礎,並提供以 Azure Resource Manager 驅動的安裝體驗,及在 Kubernetes 叢集上不同 Azure 功能的生命週期管理。

叢集操作員或系統管理員可以使用叢集延伸模組功能來:

  • 在您的 Kubernetes 叢集上安裝和管理金鑰管理、資料和應用程式供應項目。
  • 使用 Azure 原則,在環境中所有叢集上自動大規模部署叢集延伸模組。
  • 訂閱每個延伸模組的發行版本列車 (例如預覽或穩定)。
  • 設定延伸模組的自動升級,或釘選至特定版本並手動升級版本。
  • 更新延伸模組屬性或刪除延伸模組實例。

如需所有目前支援的延伸模組清單,請參閱 已啟用 Azure Arc 的 Kubernetes 叢集的可用延伸模組

架構

Cluster extensions architecture

叢集延伸模組執行個體會在 Azure Resource Manager 中已啟用 Azure Arc 的 Kubernetes 資源上 (以 Microsoft.Kubernetes/connectedClusters 表示),建立為延伸 Azure Resource Manager 資源 (Microsoft.KubernetesConfiguration/extensions)。 Azure Resource Manager 中的這種表示法可讓您撰寫原則,以檢查所有已啟用 Azure Arc 的 Kubernetes 資源是否有特定叢集延伸模組。 您判斷哪些叢集遺漏了具有所需屬性值的叢集延伸模組後,就可以使用 Azure 原則來補救這些不符合規範的資源。

在叢集中執行的 config-agent,會在已啟用 Azure Arc 的 Kubernetes 資源上追蹤新的延伸模組資源和更新的延伸模組資源。 在叢集中執行的 extensions-manager 代理程式會讀取需要安裝的延伸模組類型,並從 Azure Container Registry 或 Microsoft 容器登錄提取相關聯的 Helm 圖表,並將其安裝在叢集上。

在叢集中執行的 config-agentextensions-manager 元件都會處理延伸模組執行個體更新、版本更新和刪除延伸模組執行個體。 這些代理程式會使用叢集的系統指派受控識別,與 Azure 服務進行安全通訊。

注意

config-agent 會檢查已啟用 Azure Arc 的 Kubernetes 叢集上是否有新的或更新的延伸模組執行個體。 代理程式需要連線能力,才能將延伸模組的所需狀態提取到叢集。 如果代理程式無法連線至 Azure,則會延遲將所需的狀態傳播至叢集。

延伸模組執行個體的受保護組態設定會在已啟用 Azure Arc 的 Kubernetes 服務中儲存最多 48 小時。 因此,如果在 Azure 上建立延伸模組資源後的 48 小時內,叢集仍保持中斷連線,則延伸模組會從 Pending 狀態變更為 Failed 狀態。 若要避免這種情況,建議您定期讓叢集上線。

重要

目前,在 ARM64 型叢集上不支援已啟用 Azure Arc 的 Kubernetes 叢集延伸模組,但 Flux (GitOps) 除外。 若要安裝並使用其他叢集延伸模組,該叢集必須至少有一個作業系統和架構類型 linux/amd64 的節點。

延伸模組範圍

每個延伸模組類型都會定義它們在叢集上運作的範圍。 已啟用 Arc 的 Kubernetes 叢集上的延伸模組安裝是叢集範圍的命名空間範圍的

叢集範圍延伸模組將會安裝在建立延伸模組期間指定的 release-namespace 中。 一般而言,叢集範圍延伸模組及其元件只有一個執行個體,例如 Pod、運算子和自訂資源定義 (CRD),會安裝在叢集上的發行命名空間中。

命名空間範圍延伸模組可以安裝在使用 –namespace 屬性提供的指定命名空間中。 由於延伸模組可以在命名空間範圍部署,因此命名空間範圍延伸模組的多個執行個體及其元件可以在叢集上執行。 每個延伸模組執行個體都具有部署所在的命名空間權限。 上述所有延伸模組都是叢集範圍,但 Kubernetes 上的事件方格除外。

所有目前可用的延伸模組都是叢集範圍的,除了 Azure Arc 上的 Azure API 管理之外。

下一步