你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过 Azure Arc 网关(预览版)简化网络配置要求
如果使用企业代理来管理出站流量,Azure Arc 网关(预览版)可帮助简化启用连接的过程。
使用 Azure Arc 网关(预览版)可以:
- 通过仅向七个完全限定域 (FQDN) 开放公共网络访问来连接到 Azure Arc。
- 查看并审核 Arc 代理通过 Arc 网关发送到 Azure 的所有流量。
Azure Arc 网关的工作原理
Arc 网关的工作原理是引入两个新组件
Arc 网关资源是一种 Azure 资源,充当 Azure 流量的公共前端。 此网关资源通过特定域/URL 提供。 必须按照本文中所述的步骤创建此资源。 成功创建网关资源后,此域/URL 将包含在成功响应中。
Arc 代理是一个作为自己的 Pod 运行的新组件(称为“Azure Arc 代理”)。 此组件充当 Azure Arc 代理和扩展使用的转发代理。 Azure Arc 代理不需要你进行任何配置。 从已启用 Arc 的 Kubernetes 代理版本 1.21.10 开始,此 Pod 现在是核心 Arc 代理的一部分,并且在已启用 Arc 的 Kubernetes 群集的上下文中运行。
网关设置好后,流量流经以下跃点:Arc 代理 → Azure Arc 代理 → 企业代理 → Arc 网关 → 目标服务。
当前限制
在公共预览版期间,存在以下限制。 规划配置时,请考虑这些因素。
- Arc 网关不支持 TLS 终止代理。
- 除 Arc 网关之外,不能使用 ExpressRoute/站点到站点 VPN 或专用终结点。
- 每个 Azure 订阅限制为五个 Arc 网关资源。
可以使用 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 网关资源通常需要大约 10 分钟。
确认对所需 URL 的访问权限
成功创建资源后,成功响应将包括 Arc 网关 URL。 请确保 Arc 资源所在的环境中允许 Arc 网关 URL 和下方的所有 URL。
URL | 目的 |
---|---|
[Your URL prefix].gw.arc.azure.com |
网关 URL。 可在创建网关资源后运行 az arcgateway list 来获取此 URL。 |
management.azure.com |
Azure 资源管理器控制通道所需的 Azure 资源管理器终结点。 |
<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 、*.data.mcr.microsoft.com |
拉取 Azure Arc 代理的容器映像所需的终结点。 |
使用 Arc 网关资源将 Kubernetes 群集加入 Azure Arc
确保环境满足已启用 Azure Arc 的 Kubernetes 的所有必需先决条件。 由于使用的是 Azure Arc 网关,因此无需满足全套网络要求。
在部署计算机上,设置 Azure CLI 使用出站代理服务器所需的环境变量:
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
参数的连接命令。 如果代理服务器同时设置了 HTTP 和 HTTPS,请确保对 HTTP 代理使用--proxy-http
,对 HTTPS 代理使用--proxy-https
。 如果代理服务器仅使用 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-skip-range
参数可用于以逗号分隔的方式指定 CIDR 范围和终结点,以便代理与这些终结点之间的通信不会通过出站代理进行。 群集中服务的 CIDR 范围至少应指定为此参数的值。 例如,如果kubectl get svc -A
返回一个服务列表,其中所有服务在10.0.0.0/16
范围内都有ClusterIP
值,则要为--proxy-skip-range
指定的值为10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
。大多数出站代理环境预期使用
--proxy-http
、--proxy-https
和--proxy-skip-range
。 仅在需要将代理预期的受信任证书插入代理 Pod 的受信任证书存储中时,才需要--proxy-cert
。必须将出站代理配置为允许 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 网关后,将不再需要企业代理或防火墙中之前允许使用的一些 Arc 终结点,可以将其删除。 建议至少等待一小时,然后再删除不再需要的任何终结点。 请确保不要删除 Arc 网关所需的任何终结点。
删除 Arc 网关
要禁用 Arc 网关并删除 Arc 网关资源与已启用 Arc 的群集之间的关联,请运行以下命令:
az connectedk8s update -g <resource_group> -n <cluster_name> --disable-gateway
监视流量
可以通过查看网关路由器的日志来审核网关流量:
kubectl get pods -n azure-arc
运行- 标识 Arc 代理 Pod(其名称以
arc-proxy-
开头)。 kubectl logs -n azure-arc <Arc Proxy pod name>
运行
其他方案
在公共预览版期间,Arc 网关涵盖加入群集所需的终结点,以及其他支持 Arc 的方案所需的部分终结点。 根据采用的方案,代理中仍然需要允许其他终结点。
使用 Arc 网关时,必须在企业代理中允许以下方案中列出的所有终结点:
- Azure Monitor 中的容器见解:
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
*.monitoring.azure.com
- Azure Key Vault:
<vault-name>.vault.azure.net
- Azure Policy:
data.policy.core.windows.net
store.policy.core.windows.net
- Microsoft Defender for Containers:
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
- 已启用 Azure Arc 的数据服务
*.ods.opinsights.azure.com
*.oms.opinsights.azure.com
*.monitoring.azure.com