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。
相关推荐
上天_去_做颗惺星 EVE_BLUE1 小时前
Docker入门教程:常用命令与基础概念
linux·运维·macos·docker·容器·bash
alden_ygq2 小时前
Kubernetes容器运行时:Containerd vs Docker
docker·容器·kubernetes
努力搬砖 ing2 小时前
Docker疑难杂症解决指南
docker·容器·eureka
张青贤5 小时前
K8s中的containerPort与port、targetPort、nodePort的关系:
云原生·容器·kubernetes
云攀登者-望正茂7 小时前
AKS 支持 Kata Container容器沙盒 -预览阶段
容器·azure
撸码到无法自拔10 小时前
docker常见命令
java·spring cloud·docker·容器·eureka
小马爱打代码11 小时前
K8S - GitLab CI 自动化构建镜像入门
ci/cd·kubernetes·gitlab
zhojiew12 小时前
istio in action之服务网格和istio组件
云原生·istio
hi,编程哥14 小时前
Docker、ECS 与 K8s 网段冲突:解决跨服务通信中的路由问题
docker·容器·kubernetes
How_doyou_do14 小时前
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
运维·docker·容器