选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

准备混合节点的联网

聚焦模式
准备混合节点的联网 - Amazon EKS

帮助改进此页面

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

帮助改进此页面

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

本主题概述创建 Amazon EKS 集群和挂载混合节点之前必须配置的联网设置。本指南假设您已满足使用 AWS Site-to-Site VPNAWS Direct Connect 或您自己的 VPN 解决方案进行混合网络连接的先决条件。

混合节点网络连接。

本地联网配置

最低网络要求

为确保最佳体验,AWS 建议从混合节点到 AWS 区域的可靠网络连接至少达到 100 Mbps,并且往返延迟最大 200 毫秒。带宽和延迟要求可能因混合节点的数量和工作负载特征而异,例如应用程序映像大小,应用程序弹性、监控和日志记录配置,以及需要访问其他 AWS 服务中所存储数据的应用程序依赖项。

本地节点和容器组 CIDR

确定您将用于混合节点以及在其上运行的工作负载的节点和容器组 CIDR。节点 CIDR 是从本地网络分配的,如果您为 CNI 使用叠加网络,则容器组 CIDR 是从您的容器网络接口(CNI)分配的。创建 Amazon EKS 集群时,您可以使用 RemoteNodeNetworkRemotePodNetwork 字段将本地节点 CIDR 和可选的容器组 CIDR 作为输入传递。

本地节点和容器组 CIDR 块必须满足以下要求:

  1. 处于以下 IPv4 RFC-1918范围之一:10.0.0.0/8172.16.0.0/12192.168.0.0/16

  2. 不相互重叠,也不与 Amazon EKS 集群的 VPC CIDR 或 Kubernetes 服务 IPv4 CIDR 重叠。

如果您的 CNI 在容器组流量离开本地主机时对其执行网络地址转换(NATI),则无需向本地网络公开您的容器组 CIDR,也不需要为您的 Amazon EKS 集群配置远程容器组网络,以便混合节点做好处理工作负载的准备。如果您的 CNI 在容器组流量离开本地主机时不使用 NATI,则必须向本地网络公开您的容器组 CIDR,此外还必须为您的 Amazon EKS 集群配置远程容器组网络,以便混合节点做好处理工作负载的准备。如果您在混合节点上运行 Webhook,则必须向本地网络公开您的容器组 CIDR,并为您的 Amazon EKS 集群配置远程容器组网络,以便 Amazon EKS 控制面板能够直接连接到在混合节点上运行的 Webhook。

混合节点安装和升级期间必需的访问权限

在安装过程中,您必须具有以下域的访问权限,以便在主机上安装混合节点依赖项。此过程可以在生成操作系统映像时一次执行,也可以在运行时中在每台主机上完成。这包括初始安装以及升级混合节点的 Kubernetes 版本时。

组件 URL 协议 端口

EKS 节点构件(S3)

https://hybrid-assets.eks.amazonaws.com

HTTPS

443

EKS 服务端点

https://eks.region.amazonaws.com

HTTPS

443

EKS ECR 端点

区域性端点请参阅查看 Amazon EKS 附加组件的 Amazon 容器映像注册表

HTTPS

443

SSM 二进制端点 1

https://amazon-ssm-region.s3.region.amazonaws.com

HTTPS

443

SSM 服务端点 1

https://ssm.region.amazonaws.com

HTTPS

443

IAM Anywhere 二进制端点 2

https://rolesanywhere.amazonaws.com

HTTPS

443

IAM Anywhere 服务端点 2

https://rolesanywhere.region.amazonaws.com

HTTPS

443

注意

1 仅在将 AWS SSM 混合激活用作本地 IAM 凭证提供者时,才需要 AWS SSM 端点访问权限。

2 仅在将 AWS IAM Roles Anywhere 用作本地 IAM 凭证提供者时,才需要 AWS IAM 端点访问权限。

正在进行的集群操作需要的访问权限

正在进行的集群操作需要拥有本地防火墙的以下网络访问权限。

重要

根据您选择的 CNI,您需要为 CNI 端口配置其他网络访问规则。有关详细信息,请参阅 Cilium 文档Calico 文档

类型 协议 Direction 端口 来源 目标 使用量

HTTPS

TCP

出站

443

远程节点 CIDR

EKS 集群 IP 1

Kubelet 到 Kubernetes API 服务器

HTTPS

TCP

出站

443

远程容器组 CIDR

EKS 集群 IP 1

容器组(pod)到 Kubernetes API 服务器

HTTPS

TCP

出站

443

远程节点 CIDR

SSM 服务端点

SSM 混合激活凭证刷新和 SSM 心跳信号发送每隔 5 分钟进行一次

HTTPS

TCP

出站

443

远程节点 CIDR

IAM Anywhere 服务端点

IAM Roles Anywhere 凭证刷新

HTTPS

TCP

出站

443

远程容器组 CIDR

STS 区域性端点

容器组(pod)到 STS 端点,仅对 IRSA 为必需

HTTPS

TCP

出站

443

远程节点 CIDR

Amazon EKS 身份验证服务端点

节点到 Amazon EKS 身份验证端点,仅对 Amazon EKS 容器组身份为必需

HTTPS

TCP

入站

10250

EKS 集群 IP 1

远程节点 CIDR

Kubelet 到 Kubernetes API 服务器

HTTPS

TCP

入站

Webhook 端口

EKS 集群 IP 1

远程容器组 CIDR

Kubernetes API 服务器到 Webhook

HTTPS

TCP、UDP

入站、出站

53

远程容器组 CIDR

远程容器组 CIDR

容器组(pod)到 CoreDNS。如果您在云端运行至少 1 个 CoreDNS 副本,则必须允许指向运行 CoreDNS 的 VPC 的 DNS 流量。

用户定义

用户定义

入站、出站

应用程序端口

远程容器组 CIDR

远程容器组 CIDR

容器组(pod)到容器组(pod)

注意

1 Amazon EKS 集群的 IP。请参阅以下有关 Amazon EKS 弹性网络接口的章节。

Amazon EKS 网络接口

Amazon EKS 将网络接口附加到您在集群创建期间传递的 VPC 中的子网,从而实现 Amazon EKS 控制面板与您的 VPC 之间的通信。Amazon EKS 创建的网络接口可以在集群创建后通过 Amazon EC2 控制台查看,也可以通过 AWS CLI 查看。对 Amazon EKS 集群应用更改(例如 Kubernetes 版本升级)时,系统会删除原始网络接口并创建新的网络接口。您可以在集群创建期间传递子网时使用受限子网大小来限制 Amazon EKS 网络接口的 IP 范围,从而更轻松地配置本地防火墙,允许与已知受限 IP 集的入站/出站连接。要控制要在其中创建网络接口的子网,您可以在创建集群时限制指定的子网数,或者在创建集群后更新子网。

由 Amazon EKS 预置的网络接口的描述格式为 Amazon EKS your-cluster-name 。有关可用于查找 Amazon EKS 所预置网络接口的 IP 地址的 AWS CLI 命令,请参阅以下示例。请将 VPC_ID 替换为您在创建集群时传递的 VPC 的 ID。

aws ec2 describe-network-interfaces \ --query 'NetworkInterfaces[?(VpcId == VPC_ID && contains(Description,Amazon EKS))].PrivateIpAddress'

AWS VPC 和子网设置

Amazon EKS 的现有 VPC 和子网要求适用于使用混合节点的集群。此外,VPC CIDR 不能与本地节点和容器组 CIDR 重叠。必须在 VPC 路由表中为本地节点以及(可选)容器组 CIDR 配置路由。这些路由必须设置为将流量路由到用于混合网络连接的网关,这通常是虚拟专用网关(VGW)或中转网关(TGW)。如果您使用 TGW 或 VGW 来连接 VPC 和本地环境,则必须为您的 VPC 创建 TGW 或 VGW 连接。VPC 必须具有 DNS 主机名和 DNS 解析支持。

以下步骤会用到 AWS CLI。您还可以在 AWS Management Console中或使用其他接口(例如 AWS CloudFormation、AWS CDK 或 Terraform)创建这些资源。

第 1 步:创建 VPC

  1. 运行以下命令以创建一个 VPC。请将 VPC_CIDR 替换为某个 IPv4 RFC-1918(私有)或非 RFC-1918(公共)CIDR 范围(例如 10.0.0.0/16)。注意:VPC 会默认启用 DNS 解析,这是 EKS 的一项要求。

    aws ec2 create-vpc --cidr-block VPC_CIDR
  2. 为 VPC 启用 DNS 主机名。VPC 会默认启用 DNS 解析。请将 VPC_ID 替换为在上一步中创建的 VPC 的 ID。

    aws ec2 modify-vpc-attribute --vpc-id VPC_ID --enable-dns-hostnames

第 2 步:创建子网

至少创建 2 个子网。Amazon EKS 会将这些子网作为集群网络接口。有关更多信息,请参阅子网要求和注意事项

  1. 您可以使用以下命令找到 AWS 区域的可用区。请将 us-west-2 替换为您的区域。

    aws ec2 describe-availability-zones \ --query 'AvailabilityZones[?(RegionName == us-west-2)].ZoneName'
  2. 创建子网。请将 VPC_ID 替换为 VPC 的 ID。请将 SUBNET_CIDR 替换为子网的 CIDR 块(例如 10.0.1.0/24)。请将 AZ 替换为将在其中创建子网的可用区(例如 us-west-2a)。您创建的子网必须至少位于 2 个不同的可用区。

    aws ec2 create-subnet \ --vpc-id VPC_ID \ --cidr-block SUBNET_CIDR \ --availability-zone AZ

(可选)第 3 步:使用 Amazon VPC Transit Gateway(TGW)或 AWS Direct Connect 虚拟专用网关(VGW)附加 VPC

如果使用 TGW 或 VGW,请将您的 VPC 连接到该 TGW 或 VGW。有关更多信息,请参阅 Amazon VPC attachments in Amazon VPC Transit GatewaysAWS Direct Connect virtual private gateway associations

Transit Gateway

运行以下命令连接某个中转网关。请将 VPC_ID 替换为 VPC 的 ID。请将 SUBNET_ID1SUBNET_ID2 替换为在上一步中创建的子网的 ID。请将 TGW_ID 替换为 TGW 的 ID。

aws ec2 create-transit-gateway-vpc-attachment \ --vpc-id VPC_ID \ --subnet-ids SUBNET_ID1 SUBNET_ID2 \ --transit-gateway-id TGW_ID

虚拟专用网关

运行以下命令连接某个中转网关。请将 VPN_ID 替换为 VGW 的 ID。请将 VPC_ID 替换为 VPC 的 ID。

aws ec2 attach-vpn-gateway \ --vpn-gateway-id VPN_ID \ --vpc-id VPC_ID

(可选)第 4 步:创建路由表

您可以修改 VPC 的主路由表,也可以创建自定义路由表。以下步骤将创建一个自定义路由表,其中包含本地节点和容器组 CIDR 的路由。有关更多信息,请参阅子网路由表。请将 VPC_ID 替换为 VPC 的 ID。

aws ec2 create-route-table --vpc-id VPC_ID

第 5 步:创建本地节点和容器组的路由

在路由表中创建每个本地远程节点的路由。您可以修改 VPC 的主路由表,也可以使用您在上一步中创建的自定义路由表。

以下示例展示了如何创建本地节点和容器组 CIDR 的路由。这些示例使用中转网关(TGW)将 VPC 连接到本地环境。如果您有多个本地节点和容器组 CIDR,请对每个 CIDR 重复这些步骤。

  • 如果您使用互联网网关或虚拟专用网关(VGW),请将 --transit-gateway-id 替换为 --gateway-id

  • 请将 RT_ID 替换为在上一步中创建的路由表的 ID。

  • 请将 REMOTE_NODE_CIDR 替换为将用于混合节点的 CIDR 范围。

  • 请将 REMOTE_POD_CIDR 替换为将在混合节点上运行的容器组的 CIDR 范围。容器组 CIDR 范围对应于容器网络接口(CNI)配置,后者最常使用的是叠加本地网络。有关更多信息,请参阅 为混合节点配置 CNI

  • 请将 TGW_ID 替换为 TGW 的 ID。

远程节点网络

aws ec2 create-route \ --route-table-id RT_ID \ --destination-cidr-block REMOTE_NODE_CIDR \ --transit-gateway-id TGW_ID

远程容器组(pod)网络

aws ec2 create-route \ --route-table-id RT_ID \ --destination-cidr-block REMOTE_POD_CIDR \ --transit-gateway-id TGW_ID

(可选)第 6 步:将子网关联到路由表

如果在上一步中创建了自定义路由表,请将您在上一步中创建的每个子网关联到您的自定义路由表。如果您选择修改 VPC 主路由表,则子网会自动关联到 VPC 的主路由表,因此可以跳过此步骤。

为您在之前步骤中创建的每个子网运行以下命令。请将 RT_ID 替换为在上一步中创建的路由表。请将 SUBNET_ID 替换为子网的 ID。

aws ec2 associate-route-table --route-table-id RT_ID --subnet-id SUBNET_ID

集群安全组配置

Amazon EKS 集群安全组需要具有以下访问权限才能进行持续集群操作。

类型 协议 Direction 端口 来源 目标 使用量

HTTPS

TCP

入站

443

远程节点 CIDR

不适用

Kubelet 到 Kubernetes API 服务器

HTTPS

TCP

入站

443

远程容器组 CIDR

不适用

当 CNI 未使用 NAT 来处理容器组流量时,容器组需要访问 K8s API 服务器的权限。

HTTPS

TCP

出站

10250

不适用

远程节点 CIDR

Kubernetes API 服务器到 Kubelet

HTTPS

TCP

出站

Webhook 端口

不适用

远程容器组 CIDR

Kubernetes API 服务器到 Webhook(如果在混合节点上运行 Webhook)

要创建具有入站访问规则安全组,请运行以下命令。必须在创建 Amazon EKS 集群时传递此安全组。默认情况下,以下命令会创建一个允许所有出站访问的安全组。您可以将出站访问范围限定为仅包含上述规则。如果您考虑限制出站规则,我们建议您首先全面测试所有应用程序和容器组,然后再将更改后的规则应用于生产集群。

  • 请将第一个命令中的 SG_NAME 替换为安全组的名称

  • 请将第一个命令中的 VPC_ID 替换为在上一步中创建的 VPC 的 ID

  • 请将第二个命令中的 SG_ID 替换为您在第一个命令中创建的安全组的 ID

  • 请将第二个命令中的 REMOTE_NODE_CIDR 和 REMOTE_POD_CIDR 替换为混合节点和本地网络的相应值。

aws ec2 create-security-group \ --group-name SG_NAME \ --description "security group for hybrid nodes" \ --vpc-id VPC_ID
aws ec2 authorize-security-group-ingress \ --group-id SG_ID \ --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "IpRanges": [{"CidrIp": "REMOTE_NODE_CIDR"}, {"CidrIp": "REMOTE_POD_CIDR"}]}]'

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。