选择 Pod 联网使用案例
Amazon VPC CNI plugin for Kubernetes 为 Pods 提供联网功能。下表可帮助您了解哪些联网使用案例可以共同使用,以及可用于不同 Amazon EKS 节点类型的功能和 Amazon VPC CNI plugin for Kubernetes 设置。表中的所有信息仅适用于 Linux IPv4
节点。
Amazon EKS 节点类型 | Amazon EC2 | Fargate | ||
---|---|---|---|---|
使用案例 | 分配给网络接口的单个 IP 地址 | 分配给网络接口的 IP 前缀 | Pods 的安全组 | |
容器组(pod)的自定义网络:分配来自不同于节点子网的子网的 IP 地址 | 支持 | 是 | 支持 | 是(通过 Fargate 配置文件控制的子网) |
适用于 Pods 的 SNAT | 是(默认值为 false ) |
是(默认值为 false ) |
是(仅限 true ) |
是(仅限 true ) |
功能 | ||||
安全组范围 | 节点 | 节点 |
容器组(pod)(如果您设置了 |
Pod |
Amazon VPC 子网类型 | 公有和私有 | 公有和私有 | 仅限私有 | 仅限私有 |
网络策略(VPC CNI) | 兼容 | 兼容 | 兼容 仅适用于 |
不支持 |
每个节点的容器组密度 | 中 | 高 | 低 | 第一 |
容器组启动时间 | 较好 | 最佳 | 好 | 中 |
Amazon VPC CNI 插件设置(有关各项设置的更多信息,请参阅 GitHub 上的 amazon-vpc-cni-k8s |
||||
WARM_ENI_TARGET |
支持 | 不适用 | 不适用 | 不适用 |
WARM_IP_TARGET |
支持 | 支持 | 不适用 | 不适用 |
MINIMUM_IP_TARGET |
支持 | 支持 | 不适用 | 不适用 |
WARM_PREFIX_TARGET |
不适用 | 支持 | 不适用 | 不适用 |
注意
-
不能将
IPv6
用于自定义联网。 -
IPv6
地址不会进行转换,因此 SNAT 不适用。 -
流向和来自具有关联安全组的 Pods 的流量不受 Calico 网络策略执行限制,并且仅受限于 Amazon VPC 安全组执行。
-
如果您使用 Calico 网络策略实施,则建议您将环境变量
ANNOTATE_POD_IP
设置为true
,以避免出现 Kubernetes 的已知问题。要使用此功能,必须将容器组(pod)的patch
权限添加到aws-node
ClusterRole。请注意,向aws-node
DaemonSet 添加补丁权限会提高插件的安全范围。有关更多信息,请参阅 GitHub 上的 VPC CNI 存储库中的 ANNOTATE_POD_IP。 -
IP 前缀和 IP 地址与标准 Amazon EC2 弹性网络接口相关联。需要特定安全组的容器组被分配给分支网络接口的主 IP 地址。您可以将获取 IP 地址或从 IP 前缀获取 IP 地址的 Pods 与在同一节点上获取分支网络接口的 Pods 混合使用。
Windows 个节点
每个节点仅支持一个网络接口。您可以使用辅助 IPv4
地址和 IPv4
前缀。默认情况下,节点上可用的 IPv4
地址数等于可分配给每个弹性网络接口的辅助 IPv4
地址数减 1。但是,您可以通过启用 IP 前缀来增加节点上可用的 IPv4
地址和 Pod 密度。有关更多信息,请参阅 提高 Amazon EC2 节点的可用 IP 地址数量。
Windows 支持 Calico 网络策略。您不能在 Windows 上使用 Pods 的安全组或自定义网络。