概述
Kubernetes节点每个默认允许最多创建110个pod,有时可能由于主机配置扩容的问题,从而需要修改节点pod运行数量的限制。
即:需要调整Node节点的最大可运行Pod数量。
一般来说,我们只需要在kubelet启动命令中增加–max-pods
参数,然后,重启kubelet 服务,生效即可。
修改节点pod数量限制
可创建的Pod数量是作为Kubelet的参数出现的,因此修改Kubelet服务的配置文件增加 --max-pod 参数即可。
注意:本文以centos7操作系统修改node节点为例,不同操作系统kubelet配置文件路径可能不一致。
查看当前主机运行pod数量
root@ubuntu:~# kubectl describe node x.x.x.x | grep -A 13 Capacity
Capacity:
cpu: 16
ephemeral-storage: 302251Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65975560Ki
pods: 110
Allocatable:
cpu: 15800m
ephemeral-storage: 300203Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65475560Ki
pods: 110
可以看到当前允许的pod数量为110个
查看当前参数配置
root@ubuntu:~# cat /etc/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Wants=docker.service
[Service]
WorkingDirectory=/data/kube/kubelet
#--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest
ExecStart=/data/kube/bin/kubelet \
--root-dir=/data/kube/kubelet \
--docker-root=/data/kube/docker \
--address=xx.xx.xx.xx \
--anonymous-auth=false \
--client-ca-file=/etc/kubernetes/cluster1/ssl/ca.pem \
--cluster-dns=172.26.0.2 \
--cluster-domain=cluster.local. \
--cni-bin-dir=/data/kube/bin \
--cni-conf-dir=/etc/cni/net.d \
--fail-swap-on=false \
--hairpin-mode hairpin-veth \
--hostname-override=xx.xx.xx.xx \
--kubeconfig=/etc/kubernetes/kubelet.kubeconfig \
--max-pods=110 \ #修改为想要限制的数量即可
....
修改max-pods参数的值即可
保存之后,重启kubelet服务生效
systemctl daemon-reload
systemctl restart kubelet
检查配置
重启后配置已经生效
root@ubuntu:~# kubectl describe node 10.226.xx.xxx | grep -A 13 Capacity
Capacity:
cpu: 16
ephemeral-storage: 302251Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65975560Ki
pods: 200
Allocatable:
cpu: 15800m
ephemeral-storage: 300203Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65475560Ki
pods: 200
注意事项
对于调整 Pod 数量限制的建议
-
资源评估:在调整限制之前,确保对当前节点的资源使用情况有充分的了解,以避免因为pod数量过多导致节点资源不足。
-
监控和告警:使用监控工具来实时监测节点资源的使用情况,并设置告警规则以便及时发现异常。
-
版本兼容性:不同版本的 Kubernetes 可能对 --max-pods 参数的默认值有所不同,确保在调整之前查阅相应版本的文档