共用方式為


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

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

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

  • 只對七個完整功能變數名稱 (FQDN) 開啟公用網路存取,以連線到 Azure Arc。
  • 檢視並稽核Arc代理程式透過Arc閘道傳送至 Azure 的所有流量。

重要

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

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

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 Agents → Azure Arc Proxy → Enterprise Proxy → Arc 網關→目標服務。

此圖顯示已啟用 Arc 的 Kubernetes Azure Arc 閘道架構(預覽)。

目前的限制

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

  • Arc 閘道不支援 TLS 終止 Proxy。
  • 除了 Arc 閘道之外,您無法使用 ExpressRoute/站對站 VPN 或私人端點。
  • 每個 Azure 訂用帳戶有五個 Arc 閘道資源的限制。
  • Arc 閘道只能用於 Azure 公用雲端中的連線。

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

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

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

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

建立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閘道網關網機。 請確定您的 Arc 閘道 URL 和下列所有 URL 均可在 Arc 資源所在的環境中使用。

URL 目的
[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 標識碼端點。
gbl.his.arc.azure.com, <region>.his.arc.azure.com 與 Arc Agents 通訊的雲端服務端點。 使用簡短名稱,例如 eus 美國東部。
mcr.microsoft.com, *.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>

    注意

    某些網路要求,例如涉及叢集內服務對服務通訊的要求,必須與透過 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-cert 只有在您需要將 Proxy 預期的受信任憑證插入代理程式 Pod 的受信任證書存儲時,才需要。

    輸出 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閘道

若要停用 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 中必須允許列出下列案例的所有端點: