在专用 AKS 群集中,API 服务器终结点没有公共 IP 地址。 若要管理 API 服务器,需要使用有权访问 AKS 群集虚拟网络(VNet)的虚拟机(VM)或容器。 有几种选项可用于建立与专用群集的网络连接:
- 使用 Azure Bastion 的本机客户端隧道功能(预览版)。
- 在单独的网络中使用 VM 并设置虚拟网络对等互连。
- 使用专用终结点连接。
- 使用带
az vm create标志的--vnet-name命令,在 AKS 群集所在的相同 VNet 中创建 VM。 - 使用快速路由或 VPN 连接。
- 使用 AKS
command invoke功能。
使用 Azure Bastion 进行连接(预览版)
Azure Bastion 是一项完全托管的 PaaS 服务,您可以配置该服务,通过专用 IP 地址安全连接到私人资源。 若要使用 Bastion 的本机客户端隧道功能,请参阅 使用 Azure Bastion 连接到 AKS 专用群集。
使用虚拟网络(VNet)对等互连进行连接
若要使用 VNet 对等互连,需要在 VNet 和专用 DNS 区域之间设置链接。 可以使用 Azure 门户或 Azure CLI 配置 VNet 对等互连。
使用 Azure 门户
在 Azure 门户中,导航到节点资源组并选择“专用 DNS 区域资源”。
在服务菜单中的“DNS 管理”下,选择“虚拟网络链接”“添加”。>
在 “添加虚拟网络链接 ”页上,配置以下设置:
- 链接名称:输入虚拟网络链接的名称。
- 虚拟网络:选择包含 VM 的虚拟网络。
选择“创建”以创建虚拟网络链接。
导航到包含 AKS 群集虚拟网络的资源组,并选择 虚拟网络资源。
在服务菜单中的“设置”下,选择“对等互连”“添加”。>
在 “添加对等互连 ”页上,配置以下设置:
- 对等互连链接名称:输入对等互连链接的名称。
- 虚拟网络:选择 VM 的虚拟网络。
选择“添加”以创建对等互连链接。
有关详细信息,请参阅虚拟网络对等互连。
使用 Azure CLI
使用
az network private-dns link vnet create命令创建新链接,将 VM 的虚拟网络添加到专用 DNS 区域。az network private-dns link vnet create \ --name <new-link-name> \ --resource-group <node-resource-group-name> \ --zone-name <private-dns-zone-name> \ --virtual-network <vm-virtual-network-resource-id> \ --registration-enabled false使用
az network vnet peering create命令在 VM 的虚拟网络与节点资源组的虚拟网络之间创建对等互连。az network vnet peering create \ --name <new-peering-name-1> \ --resource-group <vm-virtual-network-resource-group-name> \ --vnet-name <vm-virtual-network-name> \ --remote-vnet <node-resource-group-virtual-network-resource-id> \ --allow-vnet-access使用
az network vnet peering create命令在节点资源组的虚拟网络与 VM 的虚拟网络之间创建第二个对等互连。az network vnet peering create \ --name <new-peering-name-2> \ --resource-group <node-resource-group-name> \ --vnet-name <node-resource-group-virtual-network-name> \ --remote-vnet <vm-virtual-network-resource-id> \ --allow-vnet-access使用
az network vnet peering list命令列出所创建的虚拟网络对等互连。az network vnet peering list \ --resource-group <node-resource-group-name> \ --vnet-name <private-dns-zone-name>
使用专用终结点连接
可以配置专用端点,以便 VNet 无需对等连接即可与专用群集通信。 若要设置专用终结点连接,请先在包含消耗资源的虚拟网络中创建新的专用终结点,然后在虚拟网络和同一网络中的新专用 DNS 区域之间创建链接。
重要
如果虚拟网络配置了自定义 DNS 服务器,则需要为环境适当地设置专用 DNS。 有关详细信息,请参阅 虚拟网络名称解析文档。
创建专用终结点资源
在 Azure 门户主页上,选择“创建资源”。
搜索专用终结点,然后选择创建>专用终结点。
选择 创建。
在“ 基本信息 ”选项卡上,配置以下设置:
项目详细信息
- 订阅:选择专用群集所在的订阅。
- 资源组:选择包含虚拟网络的资源组。
实例详细信息
- 名称:输入专用终结点的名称,例如 myPrivateEndpoint。
- 区域:选择与你的虚拟网络相同的区域。
选择 “下一步:资源 ”并配置以下设置:
- 连接方法:选择“连接到我目录中的 Azure 资源”。
- 订阅:选择专用群集所在的订阅。
- 资源类型:选择 Microsoft.ContainerService/managedClusters。
- 资源:选择你的私有集群。
- 目标子资源:选择管理。
选择 “下一步:虚拟网络 ”并配置以下设置:
-
联网
- 虚拟网络:选择虚拟网络。
- 子网:选择子网。
-
联网
选择“下一步: DNS”“下一步: 标记”并(可选)根据需要设置键值。
选择“下一步: 查看 + 创建”“创建”。>
创建资源后,记录专用终结点的专用 IP 地址,以备后用。
创建专用 DNS 区域
创建专用终结点后,请创建新的专用 DNS 区域,该区域的名称与专用群集创建的专用 DNS 区域相同。 请记得在包含消耗性资源的 VNet 中创建此 DNS 区域。
在 Azure 门户中,导航到节点资源组并选择“专用 DNS 区域资源”。
在服务菜单中的 DNS 管理下,选择 记录集 并记下以下内容:
- 专用 DNS 区域的名称,采用
*.privatelink.<region>.cx.prod.service.azk8s.cn模式。 -
A记录的名称(不包括专用 DNS 名称)。 - 生存时间 (TTL)。
- 专用 DNS 区域的名称,采用
在 Azure 门户主页上,选择“创建资源”。
搜索“专用 DNS 区域”,然后选择“创建”“专用 DNS 区域”。>
在“ 基本信息 ”选项卡上,配置以下设置:
项目详细信息
- 选择订阅。
- 选择在其中创建了专用终结点的资源组。
实例详细信息
- 名称:输入从前面的步骤中检索到的 DNS 区域的名称。
- 区域:默认为资源组的位置。
选择“审核 + 创建”>创建。
创建 A 记录
创建专用 DNS 区域后,创建一条 A 记录,该记录将专用终结点关联到专用群集。
导航到专用 DNS 区域资源。
在服务菜单下,选择“DNS 管理”中的记录集>。
在 “添加记录集 ”页上,配置以下设置:
-
名称:输入从专用群集 DNS 区域的
A记录中检索到的名称。 - 类型:选择“A - 地址记录”。
-
TTL:输入专用群集的 DNS 区域中 记录中的数字。
A -
TTL 单位:更改下拉菜单的值,使其匹配专用群集 DNS 区域的 记录中的值。
A - IP 地址:输入你创建的专用终结点的 IP 地址。
-
名称:输入从专用群集 DNS 区域的
选择“添加”以创建 记录。
A
重要
创建 A 记录时,请仅使用名称,而不使用完全限定的域名 (FQDN)。
将专用 DNS 区域链接到虚拟网络
A创建记录后,将专用 DNS 区域链接到将访问专用群集的虚拟网络。
导航到专用 DNS 区域资源。
在服务菜单中的“DNS 管理”下,选择“虚拟网络链接”“添加”。>
在 “添加虚拟网络链接 ”页上,配置以下设置:
- 链接名称:输入虚拟网络链接的名称。
- 订阅:选择专用群集所在的订阅。
- 虚拟网络:选择专用群集的虚拟网络。
选择“创建”以创建链接。
可能需要几分钟时间才能完成该操作。 创建虚拟网络链接后,可以从步骤 2 中使用的“虚拟网络链接”选项卡访问它。
警告
- 如果专用群集已停止并重启,则会移除并重新创建专用群集的原始专用链接服务,这将中断专用终结点与专用群集之间的连接。 若要解决此问题,请删除并重新创建已链接到专用群集的任何用户创建的专用终结点。 如果重新创建的专用终结点具有新的 IP 地址,则还需要更新 DNS 记录。
- 如果在专用 DNS 区域中更新 DNS 记录,请确保尝试连接的主机使用的是已更新的 DNS 记录。 可以使用
nslookup命令进行验证。 如果你发现更新并未反映在输出中,则可能需要刷新计算机上的 DNS 缓存,然后重试。
在同一虚拟网络中创建 VM
若要在专用 AKS 群集所在的同一 VNet 中创建 VM,请使用 az vm create 带有 --vnet-name 标志的命令来指定 VNet。
az vm create \
--resource-group <resource-group-name> \
--name <vm-name> \
--image <image-name> \
--vnet-name <vm-virtual-network-name> \
--subnet <subnet-name> \
--admin-username <admin-username> \
--admin-password <admin-password>
使用 Express Route 或 VPN 连接
若要使用 Express Route 或 VPN 连接,请参阅 关于 ExpressRoute 虚拟网络网关。
使用 AKS command invoke 功能
若要使用 AKS command invoke 功能连接到专用群集,请参阅 Access a private cluster using command invoke.
相关内容
有关 AKS 中的专用群集的详细信息,请参阅 创建专用 Azure Kubernetes 服务 (AKS) 群集。