共用方式為


使用 Azure Arc 閘道簡化網路設定需求 (預覽)

如果您使用企業 Proxy 來管理輸出流量,Azure Arc 閘道 (預覽) 可協助簡化啟用連線的程序。

Azure Arc 閘道 (預覽) 可讓您:

  • 藉由只對七個完整網域名稱 (FQDN) 開放公用網路存取權來連線到 Azure Arc。
  • 檢視並稽核 Arc 代理程式透過 Arc 閘道傳送至 Azure 的所有流量。

Important

Azure Arc 閘道目前為預覽狀態。

如需適用於 Beta、預覽版或尚未發行至正式運作的 Azure 功能的法律條款,請參閱 Microsoft 適用於 azure 預覽版的補充使用規定

Note

目前 Arc 閘道器的建立受到 Azure Front Door 臨時變更的影響。 資源創建可能需要長達兩小時,且可能逾時導致失敗。 如果資源建立失敗,請再試一次 Arc Gateway 資源建立。

Azure Arc 閘道的運作方式

Arc 閘道的運作方式是引進兩個新的元件

Arc 閘道資源是 Azure 資源,可作為 Azure 流量的通用前端。 閘道資源會在特定網域/URL 上提供。 您必須遵循本文中所述的步驟來建立此資源。 成功建立閘道資源之後,此網域/URL 會包含在成功回應中。

Arc Proxy 是一個新的元件,會以自己的 Pod 執行(稱為「Azure Arc Proxy」)。 此元件可作為 Azure Arc 代理程式和延伸模組所使用的轉寄 Proxy。 您不需要 Azure Arc Proxy 的設定。 自 已啟用 Arc 的 Kubernetes 代理程式 1.21.10 版起,此 Pod 現在是核心 Arc 代理程式的一部分,它會在已啟用 Arc 的 Kubernetes 叢集內容中執行。 

閘道就緒時,流量會透過下列躍點流動:Arc 代理程式 → Azure Arc Proxy → 企業 Proxy → Arc 閘道 → 目標服務。

此圖顯示 Azure Arc 閘道的結構 (預覽),以及已啟用 Arc 的 Kubernetes。

若要以高解析度下載架構圖表,請流覽 Jumpstart Gems

目前的限制

在公開預覽其間,將適用下列限制。 規劃您的設定時,請考慮這些因素。

  • Arc 閘道不支援 TLS 終止 Proxy。
  • 每個 Azure 訂用帳戶有五個 Arc 閘道資源的限制。
  • Arc 閘道只能用於 Azure 公用雲端中的連線。

Important

雖然 Azure Arc 閘道提供使用已啟用 Azure Arc 的 Kubernetes 所需的連線能力,但您可能需要啟用其他端點,才能搭配您的叢集使用某些擴充功能和服務。 如需詳細資訊,請參閱 其他案例

所需權限

若要建立 Arc 閘道資源,並管理其與已啟用 Arc 的 Kubernetes 叢集的關聯,需要下列權限:

  • Microsoft.Kubernetes/connectedClusters/settings/default/write
  • Microsoft.hybridcompute/gateways/read
  • Microsoft.hybridcompute/gateways/write

建立 Arc 閘道資源

您可以使用 Azure CLI 或 Azure PowerShell 來建立 Arc 閘道資源。

當您建立 Arc 閘道資源時,可以指定資源建立位置的訂用帳戶和資源群組,以及 Azure 區域。 不過,不論自己的訂用帳戶或區域為何,相同租用戶中所有已啟用 Arc 的資源都可以使用資源。

  1. 在可存取 Azure 的電腦上,執行下列 Azure CLI 命令:

    az extension add -n arcgateway
    
  2. 接下來,執行下列 Azure CLI 命令來建立 Arc 閘道資源,並將預留位置取代為您想要的值:

    az arcgateway create --name <gateway's name> --resource-group <resource group> --location <region> --gateway-type public --allowed-features * --subscription <subscription name or id>
    

完成建立 Arc 閘道資源通常需要大約十分鐘的時間。

確認必要 URL 的存取權

成功建立資源之後,成功回應會包含 Arc 閘道 URL。 在 Arc 資源所在的環境中,請確定您的 Arc 閘道 URL 和下列所有 URL 都獲得允許。

URL Purpose
<Your URL prefix>.gw.arc.azure.com 您的閘道 URL。 您可以在建立資源之後執行 az arcgateway list 來取得此 URL。
management.azure.com ARM 控制通道所需的 Azure Resource Manager 端點。
<region>.obo.arc.azure.com 設定 叢集連線 時必需。
login.microsoftonline.com<region>.login.microsoft.com Microsoft Entra ID 端點,用於取得身分識別存取權杖。
gbl.his.arc.azure.com<region>.his.arc.azure.com 與 Arc 代理程式通訊的雲端服務端點。 使用簡短名稱,例如 eus (美國東部)。
mcr.microsoft.com<region>.data.mcr.microsoft.com 提取 Azure Arc 代理程式的容器映像時所需。

使用 Arc 閘道資源將 Kubernetes 叢集上線至 Azure Arc

  1. 請確定您的環境符合 已啟用 Azure Arc 的 Kubernetes 所需的所有必要條件。 由於您使用 Azure Arc 閘道,因此不需要符合完整的網路需求集。

  2. 在部署機器上,設定 Azure CLI 使用輸出 Proxy 伺服器時所需的環境變數:

    export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>

  3. 在 Kubernetes 叢集上,使用指定的 proxy-httpsproxy-http 參數執行 connect 命令。 如果您的 Proxy 伺服器同時設定 HTTP 和 HTTPS,務必針對 HTTP Proxy 使用 --proxy-http,以及針對 HTTPS Proxy 使用 --proxy-https。 如果您的 Proxy 伺服器只使用 HTTP,您可對這兩個參數使用該值。

    az connectedk8s connect -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id> --proxy-https <proxy_value> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --location <region>

    Note

    某些網路要求 (例如涉及叢集內服務對服務通訊的網路要求),必須與透過輸出通訊 Proxy 伺服器路由傳送的流量分開。 --proxy-skip-range 參數可用來以逗號分隔的方式指定 CIDR 範圍和端點,讓從代理程式到這些端點的通訊都不會透過連出 Proxy 傳送。 至少應該將叢集中服務的 CIDR 範圍指定為此參數的值。 例如,如果 kubectl get svc -A 傳回服務清單,其中所有服務都有 ClusterIP 範圍中的 10.0.0.0/16 值,則要指定 --proxy-skip-range 的值是 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc

    大部分的連出 Proxy 環境都預期有 --proxy-http--proxy-https--proxy-skip-range。 只有當您需要將 Proxy 預期的受信任憑證插入代理程式 Pod 的受信任憑證存放區時,才需使用 --proxy-cert

    輸出 Proxy 必須設定為允許 Websocket 連線。

設定現有的叢集以使用 Arc 閘道

若要更新現有的叢集,使其使用 Arc 閘道,請執行下列命令:

az connectedk8s update -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id>

若要確認更新成功,請執行下列命令,並確認回應為 true

 az connectedk8s show -g <resource_group> -n <cluster_name> --query 'gateway.enabled' 

在叢集更新為使用 Arc 閘道之後,您企業 Proxy 或防火牆中先前允許的一些 Arc 端點已不再需要並且可以移除。 建議您在移除不再需要的任何端點之前,至少等候一小時。 請務必不要移除 Arc閘道所需的任何端點

移除 Arc 閘道

Important

此處所述的步驟僅適用於已啟用 Arc 的 Kubernetes 上的 Arc 閘道。 如需在 Azure Local 中卸除 Arc 閘道的詳細資訊,請參閱關於 Azure Local 的 Azure Arc 閘道(預覽版)。

若要停用 Arc 閘道,並移除 Arc 閘道資源與已啟用 Arc 的叢集之間的關聯,請執行下列命令:

az connectedk8s update -g <resource_group> -n <cluster_name> --disable-gateway 

監控流量

若要稽核閘道的流量,請檢視閘道路由器的記錄:

  1. kubectl get pods -n azure-arc執行
  2. 識別 Arc Proxy Pod (其名稱開頭為 arc-proxy-)。
  3. kubectl logs -n azure-arc <Arc Proxy pod name>執行

其他案例

在公開預覽期間,Arc 閘道涵蓋上線叢集所需的端點,以及部分其他已啟用 Arc 案例所需的端點。 根據您採用的案例,您的 Proxy 中仍需要允許其他端點。

當 Arc 閘道正在使用時,企業 Proxy 中必須允許列出下列案例的所有端點: