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。
相关推荐
藥瓿亭2 分钟前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
xyhshen6 分钟前
k8s下离线搭建elasticsearch
elasticsearch·容器·kubernetes
椰汁菠萝1 小时前
k8s集群安装坑点汇总
云原生·容器·kubernetes
背太阳的牧羊人1 小时前
sudo docker exec -it backend bash 以交互方式(interactive)进入正在运行的 Docker 容器的命令行环境
docker·容器·bash
gsls2008082 小时前
ocrapi服务docker镜像使用
运维·docker·容器
在未来等你3 小时前
互联网大厂Java求职面试:AI大模型与云原生技术的深度融合
java·云原生·kubernetes·生成式ai·向量数据库·ai大模型·面试场景
爱宇阳3 小时前
使用 Docker Compose 从零部署 TeamCity + PostgreSQL(详细新手教程)
docker·postgresql·容器
whp4043 小时前
windows server2019 不成功的部署docker经历
运维·docker·容器
忆雾屿4 小时前
云原生时代 Kafka 深度实践:06原理剖析与源码解读
java·后端·云原生·kafka
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 4. RBAC - RoleBinding
linux·运维·服务器·云原生·容器·kubernetes·cks