本文介绍如何使用 Azure Bastion 的本机客户端隧道功能安全地连接到 Azure Kubernetes 服务(AKS)专用群集。 了解如何在 Azure 虚拟网络中建立与 AKS 专用群集的安全连接,而无需向公共 Internet 公开终结点,从而不需要其他客户端软件或代理。
Azure Bastion 为其所在的虚拟网络中的所有资源提供安全连接。 使用 Azure Bastion 可保护 AKS 群集,防止向外部公开终结点,同时仍提供安全访问。 有关详细信息,请参阅 什么是 Azure Bastion? 有关 AKS 专用群集的详细信息,请参阅 创建专用 Azure Kubernetes 服务群集。
先决条件
在开始之前,请验证是否满足以下条件:
已安装 Bastion 主机的虚拟网络。
- 确保已为 AKS 群集所在的虚拟网络设置 Azure Bastion 主机。 在虚拟网络中预配和部署 Bastion 服务后,可以使用它连接到虚拟网络中的任何 AKS 专用群集。
- 若要设置 Azure Bastion 主机,请参阅 快速入门:使用默认设置部署 Bastion。
- Bastion 必须是标准或高级 SKU,并在配置设置下启用本机客户端支持。
虚拟网络或任何可访问的虚拟网络中的 AKS 群集。
必需的角色
- AKS 群集上的读取者角色。
- Azure Bastion 资源的读取者角色。
- 目标 AKS 群集虚拟网络上的读取者角色(如果 Bastion 部署位于对等互连的虚拟网络中)。
其他要求
- 如果使用 Bastion 通过 API 服务器授权 IP 范围连接到公共群集,则需要将 Bastion 的公共 IP 地址添加到群集的授权 IP 范围列表中。
Connect
若要连接到 AKS 专用群集,请执行以下操作:
使用
az loginCLI 登录到 Azure 帐户。 如果有多个订阅,可以使用以下命令查看它们az account list,并选择包含 Bastion 资源的订阅:az account set --subscription <subscription ID>检索 AKS 专用群集的凭据:
az aks get-credentials --admin --name <AKSClusterName> --resource-group <ResourceGroupName>使用以下命令之一打开指向目标 AKS 群集的隧道:
az aks bastion --name <aksClusterName> --resource-group <aksClusterResourceGroup> --admin --bastion <bastionResourceId>或:
az network bastion tunnel --name <BastionName> --resource-group <ResourceGroupName> --target-resource-id <AKSClusterID> --resource-port 443 --port <LocalMachinePort>如果使用 az network 命令,请打开一个新的命令行,通过 Bastion 隧道连接到 AKS 群集。 否则,你应该准备好与 AKS 集群交互。
kubectl get pods --server=https://localhost:<LocalMachinePort>
后续步骤
有关更多连接信息,请阅读 Bastion 常见问题解答 。