叢集連線會存取已啟用 Azure Arc 的 Kubernetes 叢集

啟用 Azure Arc 的 Kubernetes 叢集連線功能可讓您直接連線至叢集的apiserver,完全無需在防火牆上啟用任何輸入連接埠。 在叢集上執行的反向 Proxy 代理程式,能運用輸出方式,安全啟動 Azure Arc 服務的工作階段。

叢集連線可讓開發人員從任何地方存取叢集,以進行互動式開發和偵錯, 也可以讓叢集使用者和系統管理員從任何地方存取或管理其叢集。 您甚至可以使用 Azure Pipelines、GitHub Actions 或任何其他託管的持續整合與持續傳遞服務的託管代理程式/執行器,將應用程式部署至內部部署叢集,完全無需自我裝載式代理程式。

架構

Cluster connect architecture

在叢集端,名為 clusterconnect-agent 的反向 Proxy 代理程式部署為代理程式 Helm 圖表的一部分,會對 Azure Arc 服務進行輸出呼叫,以建立工作階段。

當使用者呼叫 az connectedk8s proxy 時:

  1. Azure Arc Proxy 二進位程式會下載並當作用戶端機器上的流程啟動。
  2. Azure Arc Proxy 會擷取與已啟用 Azure Arc 且叫用 az connectedk8s proxy 之 Kubernetes 叢集相關聯的 kubeconfig 檔案。
    • Azure Arc Proxy 會使用呼叫者的 Azure 存取權杖和 Azure Resource Manager 識別碼名稱。
  3. 由 Azure Arc Proxy 儲存在機器上的 kubeconfig 檔案,會將伺服器 URL 指向 Azure Arc Proxy 程序上的端點。

當使用者使用此 kubeconfig 檔案傳送要求時:

  1. Azure Arc Proxy 會將接收要求的端點對應至 Azure Arc 服務。
  2. Azure Arc 服務接著會將要求轉送至在叢集上執行的 clusterconnect-agent
  3. clusterconnect-agent 會將要求傳遞給 kube-aad-proxy 元件,該元件會對呼叫實體執行 Microsoft Entra 驗證。
  4. 在 Microsoft Entra 驗證之後,kube-aad-proxy 會使用 Kubernetes 使用者模擬,將要求轉送至叢集的 apiserver

下一步