如果您使用企業 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 閘道 → 目標服務。
若要以高解析度下載架構圖表,請流覽 Jumpstart Gems。
目前的限制
在公開預覽其間,將適用下列限制。 規劃您的設定時,請考慮這些因素。
- Arc 閘道不支援 TLS 終止 Proxy。
- 每個 Azure 訂用帳戶有五個 Arc 閘道資源的限制。
- Arc 閘道只能用於 Azure 公用雲端中的連線。
Important
雖然 Azure Arc 閘道提供使用已啟用 Azure Arc 的 Kubernetes 所需的連線能力,但您可能需要啟用其他端點,才能搭配您的叢集使用某些擴充功能和服務。 如需詳細資訊,請參閱 其他案例。
所需權限
若要建立 Arc 閘道資源,並管理其與已啟用 Arc 的 Kubernetes 叢集的關聯,需要下列權限:
Microsoft.Kubernetes/connectedClusters/settings/default/writeMicrosoft.hybridcompute/gateways/readMicrosoft.hybridcompute/gateways/write
建立 Arc 閘道資源
您可以使用 Azure CLI 或 Azure PowerShell 來建立 Arc 閘道資源。
當您建立 Arc 閘道資源時,可以指定資源建立位置的訂用帳戶和資源群組,以及 Azure 區域。 不過,不論自己的訂用帳戶或區域為何,相同租用戶中所有已啟用 Arc 的資源都可以使用資源。
在可存取 Azure 的電腦上,執行下列 Azure CLI 命令:
az extension add -n arcgateway接下來,執行下列 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
請確定您的環境符合 已啟用 Azure Arc 的 Kubernetes 所需的所有必要條件。 由於您使用 Azure Arc 閘道,因此不需要符合完整的網路需求集。
在部署機器上,設定 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>在 Kubernetes 叢集上,使用指定的
proxy-https和proxy-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
監控流量
若要稽核閘道的流量,請檢視閘道路由器的記錄:
-
kubectl get pods -n azure-arc執行 - 識別 Arc Proxy Pod (其名稱開頭為
arc-proxy-)。 -
kubectl logs -n azure-arc <Arc Proxy pod name>執行
其他案例
在公開預覽期間,Arc 閘道涵蓋上線叢集所需的端點,以及部分其他已啟用 Arc 案例所需的端點。 根據您採用的案例,您的 Proxy 中仍需要允許其他端點。
當 Arc 閘道正在使用時,企業 Proxy 中必須允許列出下列案例的所有端點:
-
Azure 監視器中的容器深入解析:
*.ods.opinsights.azure.com*.oms.opinsights.azure.com*.monitoring.azure.com
-
Azure Key Vault:
<vault-name>.vault.azure.net
-
Azure 原則 \(部分機器翻譯\):
data.policy.core.windows.netstore.policy.core.windows.net
-
Microsoft Defender 容器版:
*.ods.opinsights.azure.com*.oms.opinsights.azure.com
-
已啟用 Azure Arc 的數據服務
*.ods.opinsights.azure.com*.oms.opinsights.azure.com*.monitoring.azure.com