如何检查 Kubernetes 节点的最大 pod 容量

如何检查 Kubernetes 节点的最大 pod 容量

我正忙着设置新的 k8s 集群。

我正在使用 rke 和 --max-pods: 200

kubelet: # https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-args
    extra_args: 
    - max-pods: 200  # https://forums.rancher.com/t/solved-setting-max-pods/11866/5

如何检查运行节点是否已使用正确的设置创建。

答案1

以下命令将返回的最大 pod 值<node_name>

kubectl get node <node_name> -ojsonpath='{.status.capacity.pods}'

编辑:修复了我的命令中的拼写错误,感谢@Shtlzut。

答案2

Kubernetes 文档内部构建大型集群我们可以看到 v1.17 支持:

Kubernetes 支持最多 5000 个节点的集群。更具体地说,我们支持满足以下条件的配置: 全部 符合以下标准:

  • 不超过5000个节点
  • Pod 总数不超过 150000 个
  • 总容器数不超过 300000 个
  • 每个节点不超过 100 个 Pod

在 GKE 内部,每个节点的 pod 数量的硬性限制是110由于可用地址所致。

每个节点默认最多可容纳 110 个 Pod,Kubernetes 会为每个节点分配一个 /24 CIDR 块(256 个地址)。Kubernetes 的可用 IP 地址数量大约是节点上可创建的 Pod 数量的两倍,因此 Kubernetes 能够在节点上添加和删除 Pod 时减少 IP 地址重用。

这在优化 IP 地址分配配额和限制

或设置最大 podRancher这里是一个解决方案[已解决] 设置最大 Pod 数量

还有关于增加每个节点的最大 Pod 数量

... 鉴于机器规格、工作负载和环境的巨大差异,使用单个数字(最大 pod 数)可能会误导用户。如果我们有一个节点基准,我们就可以让用户分析他们的节点并决定最适合他们的配置。基准可以作为节点 e2e 测试存在,也可以存在于 contrib 存储库中。

我希望这能提供更多关于极限的信息。

答案3

我发现这是最好的方法

kubectl get nodes -A
NAME            STATUS   ROLES                      AGE   VERSION
192.168.1.1   Ready    controlplane,etcd,worker   9d    v1.17.2
192.168.1.2   Ready    controlplane,etcd,worker   9d    v1.17.2

kubectl describe nodes 192.168.1.1 | grep -i pods

Capacity:
cpu:                16
ephemeral-storage:  55844040Ki
hugepages-2Mi:      0
memory:             98985412Ki
pods:               110
Allocatable:
cpu:                16
ephemeral-storage:  51465867179
hugepages-2Mi:      0
memory:             98883012Ki
pods:               110

答案4

  1. kubelet 每个节点的默认最大 pod 数量为 110。
  2. Kuberentes 最佳实践是每个节点 100 个 pod
  3. Openshift 将默认值设置为每个节点 250 个 pod,并且已测试每个节点 500 个 pod。
  4. EKS 指出,它受到 pod 可以使用的 IP 数量的限制。Azure CNI 有一些限制。默认节点 pod cidr 为 /24,即 256 以下。

请参阅此处的表格 https://www.stackrox.com/post/2020/02/eks-vs-gke-vs-aks/https://learnk8s.io/kubernetes-node-size#:~:text=Most%20managed%20Kubernetes%20services%20even,of%20the%20type%20of%20node

在此处输入图片描述

大多数托管的 Kubernetes 服务甚至对每个节点的 Pod 数量施加了严格限制:

在 Amazon Elastic Kubernetes Service (EKS) 上,每个节点的最大 Pod 数量取决于节点类型,范围从 4 到 737。在 Google Kubernetes Engine (GKE) 上,无论节点类型如何,每个节点的限制都是 100 个 Pod。在 Azure Kubernetes Service (AKS) 上,默认限制是每个节点 30 个 Pod,但可以增加到 250 个。

相关内容