创建 Azure Kubernetes 服务 (AKS) 群集并将其配置为使用虚拟节点
若要快速缩放 AKS 群集中的应用程序工作负荷,可以使用虚拟节点。 使用虚拟节点可快速预配 Pod,并且只需对其执行时间按秒付费。 你无需等待 Kubernetes 群集自动缩放程序部署 VM 计算节点,就能运行更多 Pod。 只有 Linux Pod 和节点支持虚拟节点。
AKS 的虚拟节点加载项基于开源项目虚拟 Kubelet。
本文概述了使用虚拟节点的区域可用性和网络要求,以及已知限制。
区域可用性
ACI 支持 VNET SKU 的所有区域都支持虚拟节点部署。 有关详细信息,请参阅 Azure 区域中 Azure 容器实例的资源可用性。
有关每个区域中可用的 CPU 和内存 SKU,请查看 Azure 容器实例在 Azure 区域的 Azure 容器实例资源可用性 - Linux 容器组
网络要求
Azure 容器实例 (ACI) 和 AKS 群集中运行的 Pod 可以借助虚拟节点进行网络通信。 若要支持此通信,应创建虚拟网络子网并分配委派的权限。 虚拟节点仅适用于使用高级网络 (Azure CNI) 创建的 AKS 群集。 默认情况下,AKS 群集是使用基本网络 (kubenet) 创建的。
在 Azure 容器实例 (ACI) 中运行的 Pod 需要访问 AKS API 服务器终结点才能配置网络。
限制
虚拟节点功能很大程度上依赖于 ACI 的功能集。 除了 Azure 容器实例的配额和限制外,下面还列出了虚拟节点不支持的方案或者部署注意事项:
- 使用服务主体拉取 ACR 映像。 解决方法是使用 Kubernetes 机密
- 虚拟网络限制包括 VNet 对等互连、Kubernetes 网络策略和网络安全组发送到 Internet 的出站流量。
- 初始化容器
- 主机别名
- ACI 中的 exec 的参数
- DaemonSet 不会将 Pod 部署到虚拟节点
- 为了将 Windows Server 容器调度到 ACI,需要手动安装开源 Virtual Kubelet ACI 提供程序。
- 虚拟节点需要那些具有 Azure CNI 网络的 AKS 群集。
- 对 AKS 使用 API 服务器授权的 IP 范围。
- 卷装载 Azure 文件共享支持常规用途 V2 和常规用途 V1。 但虚拟节点当前不支持 永久性卷 和 永久性卷声明。 按照说明装载带有 Azure 文件共享的卷作为内联卷。
- 不支持使用 IPv6。
- 虚拟节点不支持容器挂钩功能。
后续步骤
为群集配置虚拟节点:
虚拟节点通常是 AKS 中缩放解决方案的一个组件。 有关缩放解决方案的详细信息,请参阅以下文章: