使用 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 閘道不支援 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閘道資源
在可存取 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閘道網關網機。 請確定您的 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
請確定您的環境符合已啟用 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>
注意
某些網路要求,例如涉及叢集內服務對服務通訊的要求,必須與透過 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
監視流量
若要稽核網關的流量,請檢視網關路由器的記錄:
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 金鑰保存庫:
<vault-name>.vault.azure.net
- Azure 原則:
data.policy.core.windows.net
store.policy.core.windows.net
- 適用於容器的 defender Microsoft:
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
- 已啟用 Azure Arc 的資料服務
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
*.monitoring.azure.com