And*_*ija 14 amazon-web-services kubernetes amazon-eks
在 AWS EKS 上,我将具有 17 个副本(请求和限制 64Mi 内存)的部署添加到具有 2 个节点类型 t3.small 的小型集群。
用 kube-system pod 计算,每个节点运行的 pod 总数为 11,1 个待处理,即:
节点 #1:
aws-node-1
coredns-5-1as3
coredns-5-2das
kube-proxy-1
+7 个应用程序 pod 副本
节点 #2:
aws-node-1
kube-proxy-1
+9 个应用程序 pod 副本
我理解t3.small 是一个非常小的实例。我只是想了解是什么限制了我。内存请求不是它,我的可用资源远远低于可用资源。
我发现每个节点都有 IP 地址限制,具体取决于实例类型。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html?shortFooter=true#AvailableIpPerENI。
我没有找到任何其他文档明确说明这会限制 pod 创建,但我假设它确实如此。根据该表,t3.small 可以有 12 个 IPv4 地址。如果是这种情况并且这是限制因素,因为我有 11 个 pod,1 个缺少的 IPv4 地址到哪里去了?
wei*_*eld 36
本文档中实际列出了每个 EKS 实例的实际最大 Pod 数。
对于 t3.small 实例,每个实例是 11 个 Pod。也就是说,您的集群中最多可以有 22 个 Pod。其中 6 个 Pod 是系统 Pod,因此最多保留 16 个工作负载 Pod。
您正在尝试运行 17 个工作负载 Pod,所以它太多了。我猜这些 Pod 中有 16 个已安排好,还有 1 个待处理。
定义每个实例的最大 Pod 数的公式如下:
N * (M-1) + 2
Run Code Online (Sandbox Code Playgroud)
在哪里:
所以,对于 t3.small,这个计算是3 * (4-1) + 2 = 11。
值N并M在每个实例类型此文件。
小智 9
这就是为什么我们停止使用EKSKOPS 部署的自管理集群。\n在我看来,这EKS会导致aws-cni太多的限制,它实际上违背了使用 Kubernetes 的主要好处之一,即有效利用可用资源。\nEKS系统限制从CPU / memory使用进入网络 IP 限制领域。
Kubernetes 旨在提供高密度、高效管理资源。版本情况并非如此EKS\xe2\x80\x99s,因为节点可能处于空闲状态,几乎所有内存都可用,但集群将无法在利用率较低的节点上调度 pod,如果pods > (N * (M-1) + 2).
人们可能会尝试使用另一种,CNI例如Calico,但是由于禁止访问主节点,因此仅限于工作节点。\xe2\x80\xa8这会导致集群有两个网络,并且在尝试访问K8s API或使用准入控制器时会出现问题。
它确实取决于工作流程要求,对我们来说,高 Pod 密度、资源的高效利用以及对集群的完全控制至关重要。
\n| 归档时间: |
|
| 查看次数: |
15531 次 |
| 最近记录: |