前言
K8S 性能优化系列文章,本文为第四篇:Kubernetes Node 性能优化参数最佳实际。
系列文章:
- 《K8S 性能优化 – OS sysctl 调优》
- 《K8S 性能优化 – K8S APIServer 调优》
- 《K8S 性能优化 – 大型集群 CIDR 配置》
两个参数
管制能够为 K8S Node 调度的最大 pod 数量的两个参数: podsPerCore
和 maxPods
。
当两个参数都被设置时,其中较小的值限度了节点上的 pod 数量。超过这些值可导致:
- CPU 使用率减少。
- 减慢 pod 调度的速度。
- 依据节点中的内存数量,可能呈现内存耗尽的问题。
- 耗尽 IP 地址池。
- 资源适量应用,导致用户应用程序性能变差。
⚠️ 重要
在 Kubernetes 中,蕴含单个容器的 pod 理论应用两个容器。第二个容器用来在理论容器启动前设置联网 (pause)。因而,运行 10 个 pod 的零碎实际上会运行 20 个容器。
podsPerCore
依据节点中的处理器内核数来设置节点可运行的 pod 数量。例如:在一个有 4 个处理器内核的节点上将 podsPerCore
设为 10,则该节点上容许的最大 pod 数量为 40。
kubeletConfig:
podsPerCore: 10
将 podsPerCore
设置为 0
可禁用这个限度。默认为 0
。podsPerCore
不能超过 maxPods
。
maxPods
把节点能够运行的 pod 数量设置为一个固定值,而不须要思考节点的属性。
kubeletConfig:
maxPods: 250
EOF