测试EKS服务上Pod使用VPC CNI对网络吞吐性能的影响
本文通过iperf2压力测试,验证EKS上Pod使用AWS VPC CNI进行网络转发时的性能表现。测试对比了不同CNI版本在EC2与Pod之间的网络吞吐,结果表明VPC CNI不会产生明显性能衰减,可放心在生产环境使用。
EKS动手实验合集请参考这里。
EKS 1.36 版本 @2026-09 AWS Global 区域(ap-southeast-1)实测通过,VPC CNI 测试版本为
v1.22.4-eksbuild.3与v1.23.1-eksbuild.1。
一、背景
在EC2的网络优化机型上,例如c6in.8xlarge(32vCPU/64GB),其网络带宽标称值为50Gbps。在没有容器环境的情况下,两台EC2之间使用iperf2测试可获得约49.7Gbps的吞吐,相当于标称值的99.4%,考虑统计差异,可认为几乎没有损耗。测试过程和方法参考这篇博客。
当场景来到EKS上,Pod的所有流量都经由Node节点上的AWS VPC CNI(Amazon VPC Container Network Interface)插件配置的虚拟网卡对(veth pair)与策略路由,再通过节点的弹性网卡(ENI,Elastic Network Interface)进出VPC。本文将压力测试的一端设置为非容器化的EC2,另一端设置为EKS上的Pod容器,分别在EKS 1.36默认的VPC CNI版本与最新版本下进行双向吞吐测试,以验证VPC CNI转发路径是否会造成可观测的性能衰减。
二、实验环境
基础环境:
- Time: UTC 11:30-12:30, Sep 24, 2026
- Region: ap-southeast-1, AZ: ap-southeast-1b(AZ ID为
apse1-az1)
EC2一侧:
- EC2: c6in.8xlarge
- OS: Amazon Linux 2023.12.20260918
- Kernel: 6.18.48-109.150.amzn2023.x86_64
- ENA Driver: 2.17.2g, /lib/modules/6.18.48-109.150.amzn2023.x86_64/kernel/drivers/amazon/net/ena/ena.ko(系统自带)
- iperf2: iperf version 2.1.9 (14 March 2023) pthreads
EKS容器一侧的Node节点:
- EKS版本:1.36,kubelet版本
v1.36.4-eks-a887778 - Node类型:Managed node group
- EC2: c6in.8xlarge
- OS: Amazon Linux 2023.12.20260918
- Kernel: 6.18.48-107.148.amzn2023.x86_64
- ENA Driver: 2.17.2g, /lib/modules/6.18.48-107.148.amzn2023.x86_64/kernel/drivers/amazon/net/ena/ena.ko(系统自带)
- Container Runtime: containerd 2.2.7
- CNI: AWS VPC CNI,分别测试了EKS 1.36的默认版本
v1.22.4-eksbuild.3与截至测试时的最新版本v1.23.1-eksbuild.1
EKS上Pod:
- OS: Amazon Linux 2023.12.20260918(基础镜像
public.ecr.aws/amazonlinux/amazonlinux:2023) - iperf2: iperf version 2.1.9 (14 March 2023) pthreads
需要说明的是,本次测试所用集群沿用了实验八配置的VPC CNI自定义网络(Custom Networking),Pod地址来自100.64.0.0/16辅助网段中的独立子网,由节点上额外挂载的弹性网卡承载。未启用自定义网络的集群中,Pod地址与节点位于同一子网,二者的数据路径同为VPC CNI经由节点弹性网卡转发,本文的测试方法与结论同样适用。
三、环境搭建
1、创建EKS集群
准备如下配置文件,保存为newvpc-c6in.yaml(本仓库18/newvpc-c6in.yaml为同一文件)。
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: eksworkshop
region: ap-southeast-1
version: "1.36"
vpc:
clusterEndpoints:
publicAccess: true
privateAccess: true
kubernetesNetworkConfig:
serviceIPv4CIDR: 10.50.0.0/24
managedNodeGroups:
- name: perf-ng
labels:
Name: perf-ng
instanceType: c6in.8xlarge
availabilityZones: ["ap-southeast-1b"]
minSize: 2
desiredCapacity: 2
maxSize: 2
volumeType: gp3
volumeSize: 100
volumeIOPS: 3000
volumeThroughput: 125
tags:
nodegroup-name: perf-ng
iam:
withAddonPolicies:
imageBuilder: true
autoScaler: true
certManager: true
efs: true
ebs: true
awsLoadBalancerController: true
xRay: true
cloudWatch: true
cloudWatch:
clusterLogging:
enableTypes: ["api", "audit", "authenticator", "controllerManager", "scheduler"]
logRetentionInDays: 30
在以上配置文件中,指定了两台c6in.8xlarge作为节点组perf-ng,并通过availabilityZones将节点组限定在ap-southeast-1b单一可用区。这样做有两个原因:一是压测EC2与Pod所在节点位于同一可用区,可排除跨可用区时延对测试结果的干扰;二是50Gbps的压测每10秒即产生约58GB流量,跨可用区传输会按GB产生数据传输费用,同可用区使用私有IP通信则不产生该费用。节点标签Name: perf-ng用于后续将测试Pod调度到该节点组。
创建前,先执行如下命令进行只读校验。该命令不会创建任何资源:
eksctl create cluster -f newvpc-c6in.yaml --dry-run
校验通过后,执行如下命令创建EKS集群:
eksctl create cluster -f newvpc-c6in.yaml
EKS集群会在一个新的VPC中创建好,与现有VPC无冲突。
如果已经按照实验一创建了名为eksworkshop的集群,则无需新建集群,执行如下命令只在现有集群中新增perf-ng节点组即可:
eksctl create nodegroup -f newvpc-c6in.yaml
返回结果如下(节选):
2026-09-24 19:39:13 [ℹ] nodegroup "perf-ng" has 2 node(s)
2026-09-24 19:39:13 [ℹ] node "ip-192-168-75-168.ap-southeast-1.compute.internal" is ready
2026-09-24 19:39:13 [ℹ] node "ip-192-168-93-157.ap-southeast-1.compute.internal" is ready
2026-09-24 19:39:13 [✔] created 1 managed nodegroup(s) in cluster "eksworkshop"
2026-09-24 19:39:16 [ℹ] checking security group configuration for all nodegroups
2026-09-24 19:39:16 [ℹ] all nodegroups have up-to-date cloudformation templates
执行如下命令确认节点状态:
kubectl get node -l Name=perf-ng -o wide
返回结果如下:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ip-192-168-75-168.ap-southeast-1.compute.internal Ready <none> 3m6s v1.36.4-eks-a887778 192.168.75.168 47.129.50.81 Amazon Linux 2023.12.20260918 6.18.48-107.148.amzn2023.x86_64 (amd64) containerd://2.2.7+unknown
ip-192-168-93-157.ap-southeast-1.compute.internal Ready <none> 3m7s v1.36.4-eks-a887778 192.168.93.157 3.1.205.86 Amazon Linux 2023.12.20260918 6.18.48-107.148.amzn2023.x86_64 (amd64) containerd://2.2.7+unknown
注意:c6in.8xlarge在新加坡区域的按需价格为每小时2.0832美元(本文编写时通过AWS Pricing API查询),两台节点加一台压测EC2合计每小时约6.25美元,测试完成后请按第五章末尾的步骤及时清理。
2、压力测试用EC2
压测EC2需要与节点组位于同一VPC、同一可用区。首先执行如下命令查询集群的VPC与集群安全组,并找到ap-southeast-1b可用区中的公有子网:
aws eks describe-cluster --name eksworkshop --region ap-southeast-1 \
--query 'cluster.resourcesVpcConfig.[vpcId,clusterSecurityGroupId]' --output text
aws ec2 describe-subnets --region ap-southeast-1 \
--filters Name=vpc-id,Values=<vpc-id> Name=availability-zone,Values=ap-southeast-1b Name=map-public-ip-on-launch,Values=true \
--query 'Subnets[].[SubnetId,CidrBlock]' --output text
返回结果如下,第一行为VPC ID与集群安全组ID,第二行为该可用区的公有子网:
vpc-0a69fad178fdc8284 sg-0bc05dc2178acff1d
subnet-0fcbf89630d3c64b3 192.168.64.0/19
然后执行如下命令创建EC2。操作系统使用最新的Amazon Linux 2023 AMI,通过公共SSM参数获取AMI ID;实例配置文件(Instance Profile)需要包含AmazonSSMManagedInstanceCore权限,以便通过Session Manager登录:
AMI_ID=$(aws ssm get-parameter --region ap-southeast-1 \
--name /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \
--query Parameter.Value --output text)
aws ec2 run-instances --region ap-southeast-1 \
--image-id $AMI_ID \
--instance-type c6in.8xlarge \
--subnet-id <public-subnet-id-in-ap-southeast-1b> \
--security-group-ids <cluster-security-group-id> \
--iam-instance-profile Name=<ssm-instance-profile-name> \
--associate-public-ip-address \
--block-device-mappings 'DeviceName=/dev/xvda,Ebs={VolumeSize=30,VolumeType=gp3}' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=iperf2-ec2-perftest}]' \
--query 'Instances[0].[InstanceId,PrivateIpAddress,Placement.AvailabilityZone]' --output text
返回结果如下:
i-0a9dc6a21e74f42f9 192.168.64.189 ap-southeast-1b
登录EC2后,执行如下命令安装iperf2。Amazon Linux 2023自带软件源中只有iperf3,这里使用预先编译的iperf2 RPM包:
sudo dnf install -y https://blogimg.bitipcman.com/workshop/EC2-iperf2/iperf-2.1.9-1.amzn2023.x86_64.rpm
iperf -v
modinfo ena | grep -E '^(filename|version)'
返回结果如下:
iperf version 2.1.9 (14 March 2023) pthreads
filename: /lib/modules/6.18.48-109.150.amzn2023.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version: 2.17.2g
在标称内网规格是50Gbps的场景下,不需要Placement group即可达到50Gbps的性能。如果需要更高,建议考虑使用EC2 Placement group以聚合EC2的物理位置从而实现更高性能。
3、设置EC2和EKS Node使用同一个安全组且允许互相访问
关于安全规则组,确保服务器和客户端二者互相授权,允许客户端访问服务器端的TCP和UDP协议的所有端口。这是由于iperf调用的端口较多,虽然可以通过-p参数指定端口,但是相对麻烦。
这里推荐将EC2和EKS的Node节点绑定同一个安全规则组,然后在这个安全规则组中加入一条规则,允许所有流量访问并限定来源是本安全组。这样即可允许绑定这个安全组的两个机器之间完全互信。
使用eksctl创建的托管节点组,其节点默认绑定EKS自动生成的集群安全组(名称形如eks-cluster-sg-eksworkshop-<随机数字>),该安全组已内置一条“允许所有流量、来源为本安全组”的规则。因此上一步创建EC2时直接指定该集群安全组,即可满足互信要求,无需新建安全组。执行如下命令可确认该规则存在:
aws ec2 describe-security-groups --region ap-southeast-1 --group-ids <cluster-security-group-id> \
--query "SecurityGroups[0].IpPermissions[?IpProtocol=='-1'].UserIdGroupPairs[].GroupId" --output text
返回结果如下:
sg-0bc05dc2178acff1d sg-084cf498aece02823
返回结果中包含集群安全组自身的ID(本例为第一个ID)即表示规则有效,另一个ID是eksctl创建的节点共享安全组。如果集群启用了VPC CNI自定义网络,Pod流量经由ENIConfig中指定的安全组进出,此时还需确认ENIConfig的securityGroups同样为该集群安全组,执行如下命令查看:
kubectl get eniconfig -o custom-columns='NAME:.metadata.name,SUBNET:.spec.subnet,SG:.spec.securityGroups'
注意:该安全组同时承担节点与控制平面之间的通信,向其中加入压测EC2只适用于临时测试环境。生产环境中应为压测机单独创建安全组,并仅放行所需端口。
4、构建容器并拉起容器
准备如下Dockerfile文件(本仓库18/Dockerfile为同一文件)。镜像以Amazon Linux 2023为基础,安装iperf2及常用网络排查工具,容器启动后以前台方式运行iperf -s作为服务器端:
FROM public.ecr.aws/amazonlinux/amazonlinux:2023
# Install iperf2 (prebuilt RPM for Amazon Linux 2023 x86_64) and network troubleshooting tools
RUN dnf install -y \
https://blogimg.bitipcman.com/workshop/EC2-iperf2/iperf-2.1.9-1.amzn2023.x86_64.rpm \
iproute \
ethtool \
procps-ng \
&& dnf clean all
# iperf2 listens on TCP/UDP 5001 by default
EXPOSE 5001/tcp
EXPOSE 5001/udp
# Run iperf2 as server in foreground
CMD ["iperf", "-s"]
由于iperf2的RPM包与c6in机型均为x86_64架构,构建主机也需要是x86_64架构。执行如下命令创建ECR仓库、登录ECR、构建并推送镜像:
aws ecr create-repository --repository-name iperf2 --region ap-southeast-1
aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin <account-id>.dkr.ecr.ap-southeast-1.amazonaws.com
docker build -t iperf2:2.1.9 .
docker run --rm iperf2:2.1.9 iperf -v
docker tag iperf2:2.1.9 <account-id>.dkr.ecr.ap-southeast-1.amazonaws.com/iperf2:2.1.9
docker push <account-id>.dkr.ecr.ap-southeast-1.amazonaws.com/iperf2:2.1.9
返回结果如下(节选):
iperf version 2.1.9 (14 March 2023) pthreads
922d316c3330: Pushed
3ee87b1055c5: Pushed
2.1.9: digest: sha256:54e9925a4ba50ea19c1e2f8c602eb44545c1356bf38ca247b527045a17e1b07e size: 855
准备如下容器应用配置文件,保存为iperf2.yaml(本仓库18/iperf2.yaml为同一文件),将其中的<account-id>替换为实际的账号ID。nodeSelector用于将Pod调度到perf-ng节点组。测试在VPC内部通过Pod IP直连完成,因此无需创建Service或负载均衡器:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: iperf2
labels:
app: iperf2
spec:
replicas: 1
selector:
matchLabels:
app: iperf2
template:
metadata:
labels:
app: iperf2
spec:
nodeSelector:
Name: perf-ng
containers:
- name: iperf2
image: <account-id>.dkr.ecr.ap-southeast-1.amazonaws.com/iperf2:2.1.9
ports:
- containerPort: 5001
protocol: TCP
- containerPort: 5001
protocol: UDP
执行如下命令拉起应用,获得测试用容器:
kubectl apply -f iperf2.yaml
kubectl get pods -l app=iperf2 -o wide
kubectl logs -l app=iperf2
返回结果如下:
deployment.apps/iperf2 created
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
iperf2-75486787bd-pbwwn 1/1 Running 0 33s 100.64.2.7 ip-192-168-75-168.ap-southeast-1.compute.internal <none> <none>
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
返回结果中的IP列即为Pod IP,后续作为EC2发起压力时的目标地址。下面进入测试流程。
四、测试流程
1、iperf2工具使用方法
压力测试iperf工具命令和方法参考这篇博客。
服务器端:
iperf -s
客户端:
iperf -c <server-ip> --parallel 32 -i 1
其中--parallel 32表示32个并发流,与c6in.8xlarge的32个vCPU相对应;-i 1表示每秒打印一次统计;在不添加其他参数的情况下,默认使用TCP协议,持续10秒。
本文的Pod镜像已将iperf -s作为容器启动命令,因此EC2发起压力、Pod承接的场景下,直接在EC2上执行客户端命令即可,目标地址为上一章查询到的Pod IP:
iperf -c 100.64.2.7 --parallel 32 -i 1
2、登录到pod内的shell发起交互式命令
Pod发起压力、EC2承接的场景下,需要先在EC2上启动服务器端iperf -s,然后登录到Pod的shell环境中执行客户端命令。
首先查看测试Pod:
kubectl get pods -l app=iperf2
返回结果如下:
NAME READY STATUS RESTARTS AGE
iperf2-7ff6f56754-m8zg4 1/1 Running 0 104s
复制Pod名称,拼接如下命令登录到容器:
kubectl exec --stdin --tty iperf2-7ff6f56754-m8zg4 -- /bin/bash
登录后,在容器内执行如下命令,目标地址为压测EC2的私有IP:
iperf -c 192.168.64.189 --parallel 32 -i 1
这个过程也可以使用其他容器管理工具例如k9s完成,在k9s中选中该Pod后按s键即可进入shell。
3、客户端和服务器端调换位置的测试
发起测试后,记录结果。EC2发起压力、Pod承接的一次测试结果如下:
------------------------------------------------------------
Client connecting to 100.64.2.7, TCP port 5001
TCP window size: 20.0 KByte (default)
------------------------------------------------------------
[ 8] local 192.168.64.189 port 49914 connected with 100.64.2.7 port 5001 (icwnd/mss/irtt=87/8949/1394)
[ 3] local 192.168.64.189 port 50068 connected with 100.64.2.7 port 5001 (icwnd/mss/irtt=87/8949/1451)
# 此处省略若干行...
[ 1] 0.00-10.02 sec 854 MBytes 715 Mbits/sec
[ 17] 0.00-10.02 sec 4.33 GBytes 3.71 Gbits/sec
[ 23] 0.00-10.02 sec 543 MBytes 454 Mbits/sec
[ 21] 0.00-10.02 sec 256 MBytes 214 Mbits/sec
[ 30] 0.00-10.02 sec 1.82 GBytes 1.56 Gbits/sec
[ 3] 0.00-10.02 sec 308 MBytes 258 Mbits/sec
[ 24] 0.00-10.02 sec 2.53 GBytes 2.17 Gbits/sec
[ 25] 0.00-10.02 sec 256 MBytes 214 Mbits/sec
[ 22] 0.00-10.02 sec 586 MBytes 490 Mbits/sec
[ 20] 0.00-10.02 sec 2.20 GBytes 1.88 Gbits/sec
[ 27] 0.00-10.02 sec 1.54 GBytes 1.32 Gbits/sec
[ 18] 0.00-10.02 sec 1.34 GBytes 1.15 Gbits/sec
[ 16] 0.00-10.02 sec 1.89 GBytes 1.62 Gbits/sec
[SUM] 0.00-10.00 sec 58.0 GBytes 49.8 Gbits/sec
回显中mss为8949,说明EC2与Pod之间的路径使用了9001字节的巨型帧(Jumbo Frame)。各并发流之间的吞吐分布并不均匀,但[SUM]行的合计值稳定在标称带宽附近,评估时以[SUM]行为准。
然后将服务器端和客户端的位置对换,再次执行测试。Pod发起压力、EC2承接的一次测试结果如下:
------------------------------------------------------------
Client connecting to 192.168.64.189, TCP port 5001
TCP window size: 20.0 KByte (default)
------------------------------------------------------------
[ 22] local 100.64.2.7 port 51540 connected with 192.168.64.189 port 5001 (icwnd/mss/irtt=87/8949/207)
# 此处省略若干行...
[ 24] 0.00-10.03 sec 1.24 GBytes 1.06 Gbits/sec
[ 3] 0.00-10.03 sec 398 MBytes 333 Mbits/sec
[ 15] 0.00-10.01 sec 3.27 GBytes 2.80 Gbits/sec
[ 20] 0.00-10.01 sec 9.77 GBytes 8.38 Gbits/sec
[ 27] 0.00-10.01 sec 4.76 GBytes 4.09 Gbits/sec
[ 17] 0.00-10.03 sec 2.75 GBytes 2.36 Gbits/sec
[SUM] 0.00-10.00 sec 58.1 GBytes 49.8 Gbits/sec
4、升级EKS的VPC CNI到最新版本再进行测试
前边测试完成后,升级EKS的AWS VPC CNI版本,重复测试。
首先执行如下命令查看当前版本:
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
返回结果如下:
v1.22.4-eksbuild.3
执行如下命令查询EKS 1.36下VPC CNI的可用版本,其中第二列为True的是该EKS版本的默认版本:
aws eks describe-addon-versions --addon-name vpc-cni --kubernetes-version 1.36 --region ap-southeast-1 \
--query 'addons[0].addonVersions[].[addonVersion,compatibilities[0].defaultVersion]' --output text | head -4
返回结果如下:
v1.23.1-eksbuild.1 False
v1.23.0-eksbuild.1 False
v1.22.4-eksbuild.3 True
v1.22.3-eksbuild.1 False
执行如下命令将VPC CNI升级到最新版本v1.23.1-eksbuild.1。--resolve-conflicts OVERWRITE表示以托管Addon的配置覆盖集群中被修改过的字段;命令中未传入--configuration-values时,Addon已有的配置值(例如自定义网络的环境变量)会被保留:
aws eks update-addon --cluster-name eksworkshop --addon-name vpc-cni \
--addon-version v1.23.1-eksbuild.1 --resolve-conflicts OVERWRITE --region ap-southeast-1
大约1分钟后,执行如下命令确认升级完成:
aws eks describe-addon --cluster-name eksworkshop --addon-name vpc-cni --region ap-southeast-1 \
--query 'addon.[addonVersion,status,configurationValues]' --output text
kubectl rollout status ds/aws-node -n kube-system
返回结果如下:
v1.23.1-eksbuild.1 ACTIVE {"env":{"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG":"true","ENI_CONFIG_LABEL_DEF":"topology.kubernetes.io/zone"}}
daemon set "aws-node" successfully rolled out
也可以通过EKS控制台的Add-ons界面完成升级,操作方法请参考本仓库的实验十七。
升级VPC CNI只会滚动重建aws-node DaemonSet,已经运行的Pod网络不受影响,仍保持由旧版本CNI创建时的网络配置。为使测试Pod的网络由新版本CNI配置,执行如下命令重建测试Pod:
kubectl rollout restart deploy/iperf2
kubectl rollout status deploy/iperf2
kubectl get pods -l app=iperf2 -o wide
返回结果如下:
deployment.apps/iperf2 restarted
deployment "iperf2" successfully rolled out
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
iperf2-7ff6f56754-m8zg4 1/1 Running 0 4s 100.64.2.74 ip-192-168-93-157.ap-southeast-1.compute.internal <none> <none>
重建后Pod IP与所在节点可能发生变化,需以新的Pod IP作为EC2发起压力时的目标地址。然后按本章第1至3节的方法再次进行双向测试,并观察测试结果。
五、测试数据和小结
| 对比 | CNI版本 v1.22.4-eksbuild.3(EKS 1.36默认) |
CNI版本 v1.23.1-eksbuild.1(最新) |
|---|---|---|
| EC2发起压力 Pod承接 |
49.8Gbps | 49.8Gbps |
| Pod发起压力 EC2承接 |
49.8Gbps | 49.9Gbps |
每个组合重复执行3次测试,[SUM]合计吞吐均在49.8Gbps和49.9Gbps之间抖动,表中取中位数。
结论:将压力测试的一端放到EKS上的Pod、并通过AWS VPC CNI提供网络接入后,在EKS 1.36默认版本与最新版本的VPC CNI下均没有观测到性能衰减,吞吐达到c6in.8xlarge标称50Gbps的99.6%至99.8%,两个CNI版本之间的差异处于测试抖动范围之内,可放心使用。
测试完成后,执行如下命令清理测试资源,避免c6in.8xlarge持续计费。如果是新建的测试集群,直接删除整个集群即可;如果是在实验一集群中新增的节点组,则只删除该节点组:
kubectl delete -f iperf2.yaml
aws ec2 terminate-instances --instance-ids <iperf2-ec2-instance-id> --region ap-southeast-1
aws ecr delete-repository --repository-name iperf2 --force --region ap-southeast-1
eksctl delete nodegroup --cluster eksworkshop --name perf-ng --region ap-southeast-1 --wait
参考文档
使用 iperf2 测试 EC2 网络优化型实例内网吞吐性能的方法,以及 Amazon Linux 2023 上 iperf2 RPM 包的构建过程:
https://blog.bitipcman.com/ec2-ena-iperf-networking-performance/
Amazon EC2 实例网络带宽说明,包括多流与单流带宽限制、放置组与 ENA Express 对单流带宽的影响:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html
Amazon EC2 计算优化型实例规格,包括 C6in 各规格的网络带宽标称值:
https://aws.amazon.com/ec2/instance-types/compute-optimized/
以 EKS 托管 Addon 方式升级 Amazon VPC CNI 的官方步骤:
https://docs.aws.amazon.com/eks/latest/userguide/vpc-add-on-update.html
EKS 托管 Addon 的版本兼容与升级约束(每次只能升级一个次版本):
https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html
本仓库实验十七,使用 EKS 控制台的 Addon 功能升级 VPC CNI:
https://github.com/aobao32/eks-101-workshop/blob/main/17-EKS-addon.md
最后修改于 2026-09-24