在AWS EKS上 我正在将具有17个副本(请求和限制64Mi内存)的部署添加到具有2个节点类型t3.small的小型群集中。
使用kube系统pod进行计数时,每个节点的总运行pod为11,还有1个处于待处理状态,即:
节点#1:
aws-node-1
coredns-5-1as3
coredns-5-2das
kube-proxy-1
+7个App Pod副本
节点2:
aws-node-1
kube-proxy-1
+9个App Pod副本
我知道t3.small是一个非常小的实例。我只是想了解什么限制了我。内存请求不是它,我远低于可用资源。
我发现每个节点都有IP地址限制,具体取决于实例类型。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html?shortFooter=true#AvailableIpPerENI。
我没有找到任何其他文档明确说明这限制了pod的创建,但是我假设是的。
根据该表,t3.small可以具有12个IPv4地址。如果是这种情况,并且这是一个限制因素,那么由于我有11个容器,其中1个丢失的IPv4地址去了哪里?
答案 0 :(得分:4)
每个EKS实例的实际最大pod数实际上在this document中列出。
对于t3.small实例,每个实例有11个容器。也就是说,群集中最多可以包含22个窗格。这些Pod中有6个是系统Pod,因此最多保留16个工作负载Pod。
您正尝试运行17个工作负载容器,所以这太多了。我想其中的16个吊舱已经安排好了,还有1个挂起。
定义每个实例的最大Pod的formula如下:
N * (M-1) + 2
位置:
因此,对于t3.small,此计算为3 * (4-1) + 2 = 11
。
this document中每种实例类型的N
和M
的值。