too many pod 节点pod总数超出限、修改最大pod数量

问题

pod调度失败,显示某个节点 too many pod

查看节点可分配pod数量

 kubectl  describe  no  nodes	#kubeadm 安装的k8s集群默认节点pod总数是110
Capacity:
.........
  pods:                   110

修改节点可容纳pod总数

#查看kubelet.service 的服务文件位置
[root@k8s ~]# systemctl  status kubelet.service 
● kubelet.service - Kubernetes Kubelet Server
   Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-17 14:36:02 CST; 2h 20min ago
....................
# 查看kubelet.service 的服务文件内容
cat  /etc/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Wants=docker.socket

[Service]
User=root
EnvironmentFile=-/etc/kubernetes/kubelet.env	#变量文件
ExecStartPre=-/bin/mkdir -p /data/lib/kubelet/volume-plugins
ExecStart=/usr/local/bin/kubelet \
                $KUBE_LOGTOSTDERR \
                $KUBE_LOG_LEVEL \
                $KUBELET_API_SERVER \
                $KUBELET_ADDRESS \
                $KUBELET_PORT \
                $KUBELET_HOSTNAME \
                $KUBE_ALLOW_PRIV \
                $KUBELET_ARGS \
                $DOCKER_SOCKET \
                $KUBELET_NETWORK_PLUGIN \
                $KUBELET_VOLUME_PLUGIN \
                $KUBELET_CLOUDPROVIDER
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target
#打开变量文件,添加变量
vim /etc/kubernetes/kubelet.env
# 追加一个表示pod总数的变量
MAX_PODS="--max-pods=500"
#还要修改kubelet服务文件
vim   /etc/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Wants=docker.socket

[Service]
User=root
EnvironmentFile=-/etc/kubernetes/kubelet.env	#变量文件
ExecStartPre=-/bin/mkdir -p /data/lib/kubelet/volume-plugins
ExecStart=/usr/local/bin/kubelet \
                $KUBE_LOGTOSTDERR \
                $KUBE_LOG_LEVEL \
                $KUBELET_API_SERVER \
                $KUBELET_ADDRESS \
                $KUBELET_PORT \
                $KUBELET_HOSTNAME \
                $KUBE_ALLOW_PRIV \
                $KUBELET_ARGS \
                $DOCKER_SOCKET \
                $KUBELET_NETWORK_PLUGIN \
                $KUBELET_VOLUME_PLUGIN \
                $KUBELET_CLOUDPROVIDER \	#这个斜杠不用忘记加了
                $MAX_PODS					#加上刚才添加的pod数量变量
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

重启kubelet服务,再次查看节点可容纳数量。

问题

集群中存在大量的pod处于Pending状态,查看kubectl describe pod xxxx查看,只有下面的信息,并没有too many pod 节点pod总数超出限制类似的报错信息:

Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  82s (x26 over 36m)  default-scheduler  0/1 nodes are available: 1 Insufficient pods.

查看全部的pod:

[root@master01 ~]# kubectl get nodes -o yaml | grep pods
      pods: "110"
      pods: "110"
[root@master01 ~]# kubectl  get pod -A | wc -l
145

可以判断也是pod数量过多导致的。按照上面的解决方法即可,也可以按照下面的方法修改:
在/etc/kubernetes/kubelet.env中增加fail-swap-on=false --max-pods=200
在这里插入图片描述

修改最大pod数

这样修改也可以:

vim /etc/kubernetes/kubelet-config.yaml
systemctl  restart kubelet.service

修改最大pod数

不同的k8s版本,可以添加的位置有所不一样,因为kubelet.service文件写的不一样,根据其kubelet.service文件判断应该在哪里加:
在这里插入图片描述
vim /etc/sysconfig/kubelet
在这里插入图片描述
systemctl restart kubelet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值