已啟用 Azure Arc 的 Kubernetes 代理程式概觀
已啟用 Azure Arc 的 Kubernetes 提供集中式、持續性的控制平面來管理不同環境上 Kubernetes 叢集的原則、治理和安全性。
當您將其連線到 Azure Arc 時,Azure Arc 代理程式會部署在 Kubernetes 叢集上。本文提供這些代理程式的概觀。
將代理程式部署到叢集
大部分內部部署的資料中心都會實施嚴格的網路規則,以防止網路邊界防火牆上的輸入通訊。 已啟用 Azure Arc 的 Kubernetes 不需要防火牆上的輸入連接埠,因此符合這些限制。 Azure Arc 代理程式需要對一組網路端點的清單輸出通訊。
此圖表提供 Azure Arc 元件的高階檢視。 內部部署資料中心或不同雲端中的 Kubernetes 叢集會透過 Azure Arc 代理程式連線到 Azure。 此連線可讓您使用管理工具和 Azure 服務,在 Azure 中管理叢集。 您也可以透過離線管理工具存取叢集。
以下高階步驟涉及將 Kubernetes 叢集連線至 Azure Arc:
在您選擇的基礎結構 (VMware vSphere、Amazon Web Services、Google Cloud Platform 或任何雲端原生計算基礎 (CNCF) 認證的 Kubernetes 發行版本) 上建立 Kubernetes 叢集。 叢集必須先存在,才能將叢集連線至 Azure Arc。
開始叢集的 Azure Arc 註冊。 此程序會在叢集上部署代理程式 Helm 圖表。 之後,叢集節點會發起對 Microsoft Container Registry (英文) 的輸出通訊並提取在必要的映像,以在
azure-arc
命名空間中建立下列代理程式:專員 描述 deployment.apps/clusteridentityoperator
已啟用 Azure Arc 的 Kubernetes 目前僅支援系統指派的身分識別。 clusteridentityoperator
會發起第一個輸出通訊。 第一個輸出通訊會擷取其他代理程式用來與 Azure 通訊的受控服務識別 (MSI) 憑證。deployment.apps/config-agent
監看已連線的叢集,以了解叢集上套用的原始檔控制設定資源。 更新合規性狀態。 deployment.apps/controller-manager
運算子的運算子,負責協調 Azure Arc 元件之間的互動。 deployment.apps/metrics-agent
收集其他 Arc 代理程式的計量以確認最佳效能。 deployment.apps/cluster-metadata-operator
收集叢集中繼資料,包括叢集版本、節點計數,以及 Azure Arc 代理程式版本。 deployment.apps/resource-sync-agent
將上述叢集中繼資料同步處理至 Azure。 deployment.apps/flux-logs-agent
從部署為原始檔控制設定一部分的 Flux 運算子收集記錄。 deployment.apps/extension-manager
安裝及管理延伸模組 Helm 圖表的生命週期。 deployment.apps/kube-aad-proxy
用來對透過叢集連線傳送至叢集的要求進行驗證。 deployment.apps/clusterconnect-agent
啟用叢集連線功能以向叢集的 apiserver
提供存取權的反向 Proxy 代理程式。 只有在啟用叢集連線功能時才會部署的選擇性元件。deployment.apps/guard
用於 Microsoft Entra RBAC 的驗證和授權 Webhook 伺服器。 只有在叢集啟用 Azure RBAC 時才會部署的選擇性元件。 當啟用 Azure Arc 之 Kubernetes 代理程式的所有 Pod 都處於
Running
狀態時,請確認叢集是否已連線到 Azure Arc。您應該會看到:- Azure Resource Manager (部分機器翻譯) 中的已啟用 Azure Arc 之 Kubernetes
connectedClusters
資源。 Azure 會追蹤此資源作為客戶自控 Kubernetes 叢集的投射,而不是追蹤實際的 Kubernetes 叢集本身。 - 以中繼資料形式出現在已啟用 Azure Arc 之 Kubernetes 資源上的叢集中繼資料 (如 Kubernetes 版本、代理程式版本和節點數目)。
- Azure Resource Manager (部分機器翻譯) 中的已啟用 Azure Arc 之 Kubernetes
如需將代理程式到部署至叢集的詳細資訊,請參閱快速入門:將現有 Kubernetes 叢集連線至 Azure Arc (英文)。
跨 Azure 區域移動已啟用 Arc 的 Kubernetes 叢集
在某些情況下,您可能會想要將 已啟用 Arc 的 Kubernetes 叢集 移至另一個區域。 例如,您可能想要部署僅適用於特定區域的功能和服務,或因為內部治理需求或容量規劃考慮而需要變更區域。
將已連線的叢集移動到新區域時,您會刪除來源區域中的 connectedClusters
Azure Resource Manager 資源,然後在目標區域中部署代理程式以重新建立 connectedClusters
資源。 對於叢集中的原始檔控制組態、Flux 組態和延伸模組,您需要儲存資源的詳細資料,然後在新的叢集資源中重新建立子資源。
在開始之前,請確保目標區域支援已啟用 Azure Arc 的 Kubernetes 資源 (Microsoft.Kubernetes/connectedClusters
) 以及任何需要已啟用 Azure Arc 的 Kubernetes 組態資源 (Microsoft.KubernetesConfiguration/SourceControlConfigurations
、Microsoft.KubernetesConfiguration/Extensions
、Microsoft.KubernetesConfiguration/FluxConfigurations
)。
執行 LIST 以取得來源叢集 (要移動的叢集) 中的所有設定資源,並儲存回應本文:
- Microsoft.KubernetesConfiguration/SourceControlConfigurations
- Microsoft.KubernetesConfiguration/Extensions
- Microsoft.KubernetesConfiguration/FluxConfigurations
注意
組態資源的 LIST/GET 不會傳回
ConfigurationProtectedSettings
。 在這類情況下,唯一的選項是儲存原始要求本文,並在新區域中建立資源時重複使用。從基礎 Kubernetes 叢集刪除先前的 Arc 部署。
透過基礎 Kubernetes 叢集的網路存取,以在新區域中連線該叢集 (英文)。
確認已連線 Arc 的叢集已在新區域中成功執行:
- 執行
az connectedk8s show -n <connected-cluster-name> -g <resource-group>
並確保connectivityStatus
值為Connected
。 - 執行
kubectl get deployments,pods -n azure-arc
以驗證是否已成功部署所有代理程式 (英文)。
- 執行
使用您儲存的回應本文,在目標叢集上重新建立從來源叢集的 LIST 命令中取得的每個設定資源。 若要確認,請比較目標叢集中所有組態資源的 LIST 結果與來源叢集的原始 LIST 回應。
下一步
- 逐步執行快速入門,將 Kubernetes 叢集連線至 Azure Arc。
- 檢視發行備註,以查看最新代理程式版本的詳細資料。
- 了解如何升級已啟用 Azure Arc 的 Kubernetes 代理程式。
- 深入了解如何在叢集與 Git 存放庫之間建立連線,作為已啟用 Azure Arc 的 Kubernetes 的設定資源。