关于 Kubernetes ENI 分配,我有一些疑问

0

【以下的问题经过翻译处理】 通过 https://github.com/aws/amazon-vpc-cni-k8s,我找到了基于实例类型的ENI分配方式。它以m4.4xlarge作为示例进行说明。

例如,m4.4xlarge节点最多可以拥有8个ENI,并且每个ENI最多可以有30个IP地址。(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)

如果当前运行的Pod数量在0到29之间,则ipamD将分配1个额外eni,并且热备池大小为2 eni * (30-1) = 58。

如果当前运行的Pod数量在30到58之间,则ipamD将分配2个额外eni,并且热备池大小为3 eni * (30-1) = 87。

我在下面进一步计算了它。如果我错了,请纠正我。

** Q1) ** m4.4xlarge将拥有最大的Pods为203,而热备池将拥有232。 这是正确的吗?

** Q2) ** 如果Pods超过203,会发生什么?会启动新的实例(m4.4xlarge)吗?

** Q3) ** 为什么这个计算从“0(零)” Pod开始?请解释。

Pods热备池计算公式
0 - 29582eni * (30 - 1)
30 - 58873eni * (30 - 1)
...
146 - 1742037eni * (30 - 1)
175 - 2032328eni * (30 - 1)

谢谢。

profile picture
EXPERTE
gefragt vor 5 Monaten25 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 现在可以更好地控制CNI抓取多少个ENI了。

另一方面,Kubernetes本身对每个节点支持最多100个pod。使得一些具有大量可用地址的较大实例不太吸引人。虽然每个节点的pod限制是可配置的,但我不会在没有非常好的理由的情况下增加它。这意味着最佳实例大小在2xlarge-4xlarge之间,至少从地址分配的角度来看。较大的尺寸在性能方面可能更好,但您将不会获得更多有用的地址。

https://kubernetes.io/docs/setup/cluster-large/ 每个节点不超过100个Pod

Q1)m4.4xlarge节点最多可以拥有8个ENI,每个ENI最多可以拥有30个IP地址。https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html 为此,最大地址为240个,供pod使用。暖池由“WARM_ENI_TARGET”控制,其默认值为1。这将意味着30个地址在热备池中(可用于ENI的数量)。但是,在最大地址的情况下,将没有剩余的热备池。热备池目标可以通过环境变量进行配置,并且算法最近已进行了调整。如果有疑虑,我会测试一下以验证实际数字。

Q2)不会自动执行任何操作。您可能会耗尽 K8 集群中的地址。您可以考虑 "集群自动扩展",它会在地址耗尽时启动新的主机(或者更准确地说是在 Pod 放置失败时)。

Q3)每个ENI需要一个主要地址,并且用于将流量路由到工作节点外部。这就是为什么你会减少一个地址的原因。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen