k8s 调整Node节点 Max_Pods

默认情况下,Kubernetes集群中一个Node最多能起110个Pod。

这是基于性能和资源管理的考虑,以确保Kubernetes集群的稳定性和可靠性。

查看kht125节点上支持的最大pod数量:

kubectl describe node kht125 | grep -i "Capacity|Allocatable" -A 6

调整Node节点Max_Pods的方法如下:

  1. 查看节点上kubelet启动时用的配置文件:使用systemctl status kubelet -l命令查看。
  2. 修改配置文件:找到kubelet的配置文件,通常为/var/lib/kubelet/config.yaml。如果文件中存在maxPods参数,则将其修改为所需的值;如果没有此参数,则直接添加,例如maxPods: 120,注意要顶格,前面不要有空格。
  3. 重启修改Pod数量的节点上的kubelet服务:使用systemctl restart kubelet命令重启。在master节点上用kubectl get nodes查看该节点的状态,若为Ready则表示成功;如果是NotReady,可等一会或者查看kubelet日志以确定是否启动成功。也可以使用kubectl describe node查看输出结果里的Pods参数是否已变成修改后的值。

当Pod数量达到节点上限时,可以采取以下具体操作:

  • 增加节点数量:在节点页面查看容器组、CPU、内存的使用情况,确定集群的资源使用率,根据Pod声明的亲和性策略在集群中添加新的节点。例如,使用云服务提供商的相关接口或命令行工具创建新的节点并加入集群。
  • 调整资源分配:检查Pod资源配额设置,对于资源设置不合理的Pod,适当调整其CPU、内存等资源请求和限制,以释放一些节点资源,让新的Pod能够调度到该节点上。
  • 优化Pod分布:检查Pod的分布情况,看是否存在某些节点上Pod分布过于密集,而其他节点资源利用率较低的情况。可以通过调整Pod的调度策略,如使用节点亲和性、反亲和性等,将Pod分散到其他资源充足的节点上。
  • 删除不必要的Pod:如果有一些不重要或暂时不需要的Pod正在运行,可以考虑删除它们,以腾出空间来调度新的Pod。但在删除Pod时,需要确保不会影响到业务的正常运行。

###########################################

Kubernetes集群中一个Node默认最多能起110个Pod,但你看到大于110甚至是254的情况,可能有以下原因:

  • 网络插件影响:不同的网络插件对Node节点上Pod数量的限制有所不同。例如,在Flannel网络模式下,单节点默认支持的最大Pod数为256,扣除flannel、docker0占用的2个IP,实际最多可运行254个Pod。这是因为Flannel配置的本节点Pod网段是/24,提供了256个IP地址,而其中2个被保留。
  • 集群类型差异:某些特定的集群类型或发行版可能会对默认的Pod数量限制进行调整。比如OpenShift集群,在默认配置下,每个Node节点最多可以有254个Pod。这是因为OpenShift SDN按照RFC1918分配/16私有子网空间(默认10.1.0.0/16)作为集群网络,为每个Node节点分配/24大小的IP地址空间给Node节点上的Pods,扣除网关地址和广播地址,每个Node节点最多可容纳254个Pod。
  • 手动配置修改 :通过修改kubelet的配置参数--max-pods,可以调整Node节点上允许运行的最大Pod数量。如果管理员根据实际业务需求和节点资源情况,将--max-pods参数设置为大于110的值,那么该节点就能运行更多的Pod。
相关推荐
Mr_Dwj2 小时前
【运维】Docker 入门
运维·docker·云原生·容器
奋斗的蛋黄2 小时前
CI/CD 全流程指南:从概念到落地的持续交付实践
运维·ci/cd·kubernetes
肖祥2 小时前
OpenObserve日志分析平台
kubernetes·运维开发
小黑_深呼吸4 小时前
三、ingress全面详解: 实例配置及访问
docker·容器·kubernetes
心无旁骛~4 小时前
Docker常见命令
运维·docker·容器
企鹅侠客5 小时前
Kubeconfig文件自动合并-K8S多集群切换
云原生·容器·kubernetes
victory04316 小时前
resource 和 K8S 对接部分 apifox
云原生·容器·kubernetes
炸裂狸花猫6 小时前
开源CI&CD工具-Drone
ci/cd·云原生·容器·kubernetes·开源·drone
刘一说7 小时前
Spring Boot 应用的云原生 Docker 化部署实践指南
spring boot·docker·云原生
❀͜͡傀儡师7 小时前
docker部署开源监控软件hertzbeat
docker·容器·开源·hertzbeat