View a markdown version of this page

Amazon EKS 混合节点功能网关 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

Amazon EKS 混合节点功能网关

Amazon EKS 混合节点功能网关可在您的 Amazon EKS 集群 VPC 和在 EKS 混合节点上运行的 Kubernetes 容器之间自动联网。通过该网关,无需从 VPC 路由本地容器组(pod)网络,也无需协调网络基础设施更改。该网关可在 VPC 中基于 EC2 的网关节点和本地环境中 Cilium 管理的混合节点之间创建 VXLAN 隧道,并自动维护 VPC 路由表条目,以便流量到达正确的网关实例。

使用案例

混合节点网关可在 VPC 与本地环境之间实现以下流量功能:

  • 控制面板到 Webhook 的通信:Kubernetes API 服务器可以访问在混合节点上运行的 Webhook 端点。如果没有网关,则无法从控制面板访问混合节点上的 Webhook,除非将容器组(pod)CIDR 设置为可在本地环境中路由。

  • 云端和本地的容器组(pod)到容器组(pod)的流量:在 VPC 的 EC2 节点上运行的容器组(pod)可直接与在混合节点上运行的容器组(pod)通信,反之亦然。

  • AWS 服务与混合容器组(pod)的连接:应用程序负载均衡器、网络负载均衡器和 Amazon Managed Service for Prometheus 等 AWS 服务可访问在混合节点上运行的容器组(pod)。

架构

两个网关容器组(pod)均作为部署在带标签的 EC2 节点上运行。基于 Kubernetes Lease 的主节点选举决定了哪个容器组(pod)处于活动状态。两个容器组(pod)在启动时都会创建一个 VXLAN 接口,并运行监视 CiliumNode 对象的节点协调程序,因此备用实例随时准备在失效转移后的 3 – 5 秒内转发流量。主节点身份变动时,只有主节点特定的操作(VPC 路由表更新和 CiliumVTEPConfig 管理)才会转移。

工作原理

混合节点网关使用四种机制来实现连接:

VXLAN 隧道:网关在 UDP 端口 8472(Cilium 默认值)上创建带有 VNI 2 的 VXLAN 接口 (hybrid_vxlan0)。该网关通过在 VXLAN 接口上对 FDB 条目、ARP 条目和路由进行编程,建立通往每个混合节点的隧道。当混合节点加入或离开集群时,节点控制器会监视 CiliumNode 对象并自动添加或移除隧道。

VPC 路由表管理:当网关成为主节点时,它会在指定的 VPC 路由表中创建或替换路由。每条路由都将混合容器组(pod)CIDR 指向主节点的主 ENI,因此发往混合容器组(pod)的 VPC 流量将转发到活动网关实例。

Cilium VTEP 集成:网关创建 CiliumVTEPConfig 自定义资源,告知混合节点上的 Cilium 代理将绑定 VPC 的流量发送到何处。该配置包含作为隧道端点的主节点 IP 和 VXLAN 接口 MAC 地址。当混合容器组(pod)向 VPC 地址发送流量时,Cilium 会将其封装在 VXLAN 数据包中并将其发送到网关。

主节点选举:网关将基于 Kubernetes Lease 的主节点选举与主动-备用模式搭配使用。两个网关容器组(pod)在由容器组(pod)反关联性强制执行的不同节点上运行。两个容器组(pod)在启动时都会创建一个 VXLAN 接口,并运行一个节点协调程序,用于维护所有混合节点的 VTEP 条目。主节点执行 VPC 路由表更新和 Cilium VTEP 配置。如果主节点出现故障,则备用实例会检测到租约到期,获取租约,然后运行主节点设置序列。预期的失效转移时间约为 3 – 5 秒。

部署模式

混合节点网关在 VPC 中的 EC2 实例上运行,并使用 Helm 图表进行部署。该网关支持以下部署目标:

  • EKS 自动模式:可创建 NodePoolNodeClass,它们会自动为网关节点配置正确的标签、污点和源/目标检查配置。这是建议的配置。

  • EKS 托管节点组:可创建禁用网关标签、污点和源/目标检查的专用托管节点组,然后在 Helm 值中设置 autoMode.enabled=false

对于所有部署目标,建议至少使用两个节点,以实现高可用性。有关更多信息,请参阅 开始使用 EKS 混合节点功能的网关

定价

Amazon EKS 混合节点功能网关不收取额外费用,但您需要支付运行网关的基础设施费用,包括 EC2 实例和 EKS 自动模式管理费(如适用)。有关更多信息,请参阅 Amazon EKS 定价

区域可用性

除中国区域外,Amazon EKS 混合节点功能网关已在提供 EKS 混合节点的所有 AWS 区域推出。有关支持的区域的当前列表,请参阅Amazon EKS 混合节点功能概述

开源

Amazon EKS 混合节点功能网关代码库为开源。您可以在 GitHub 存储库中查看源代码、报告问题并做出相关贡献。

限制和注意事项

在部署混合节点网关之前,请考虑以下事项:

  • 没有流量加密:网关创建的 VXLAN 隧道不加密流量。如果您需要在 VPC 和本地环境之间实现传输中加密,请使用加密传输方式,例如带有 MACsec 或 VPN 连接的 AWS Direct Connect。有关更多信息,请参阅 Amazon EKS 中的数据保护

  • 单个集群:每个网关部署服务于一个 EKS 集群。如果您有多个带有混合节点的集群,请为每个集群部署一个单独的网关。

  • 需要 Cilium VTEP:网关需要 EKS 版本的 Cilium CNI,并在混合节点上启用 VTEP 支持。不支持其他 CNI 插件。

后续步骤