为什么 EKS 中默认有两个 ENI?

Why two ENIs by default in EKS?

当我创建 EKS 集群时,我看到工作节点有两个 ENI,eth0 和 eth1。

EKS 的功能是否需要两个 ENI?或者添加两个 ENI 为 pods(使用默认 AWS CNI)提供更多 IP?

默认情况下,EKS 使用 aws-vpc-cni-k8s 为 pods 分配 IP 地址。 CNI 插件的默认设置是 WARM_ENI_TARGET=1,这将确保您有一个额外的 ENI 可用于将来分配。您的地址将分配给第一个 ENI,直到实例类型的每个 ENI 的最大 IP 数用完,然后分配将来自第二个 ENI。将 IP 地址分配给第二个 ENI 后,将根据 WARM_ENI_TARGET 设置分配第三个 ENI。它将在您使用地址时继续分配额外的 ENI,直到您达到实例类型的最大 ENI 数量。

第二个 ENI 的另一个原因是您可以使用附加到 VPC 的辅助 CIDRS。这允许使用一组仅用于 PODS 的 IP 地址进行特定的 IP 规划。当t3.small获得11个IP而M5.2xlarge获得58个IP时,您必须规划子网。

查看文档:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html