2

Kubernetes限制节点启动的Pod数量

 2 years ago
source link: http://dockone.io/article/2434542
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kubernetes限制节点启动的Pod数量

Node节点默认的Pod数量

Kubernetes Node节点每个默认允许最多创建110个Pod,有时可能会由于系统硬件的问题,从而需要控制Node节点的Pod的运行数量。

即:需要调整Node节点的最大可运行Pod数量。

一般来说,我们只需要在kubelet启动命令中增加–max-pods参数,然后,重启kubelet 服务,就生效。

重启kubelet,不影响现有运行中的容器,不会造成容器重启。

修改限制Pod启动数量

可以看到,集群当前有3台Node节点,且最大可运行Pod数量均为默认值:110。

接下来,我们来修改该参数值。
1、登录 Node 节点,查看kubelet启动文件路径
[root@VM-2-8-centos ~]# systemctl status kubelet


从上图可以看到,kubelet 的启动文件为/usr/lib/systemd/system/kubelet.service

2、查看 systemd 启动文件

可以看到,Environment文件是引用/etc/kubernetes/kubelet,至此,我们只需要在/etc/kubernetes/kubelet中增加max-pods的变量,然后在/usr/lib/systemd/system/kubelet.service中,将变量添加到启动参数后即可。

3、修改/etc/kubernetes/kubelet

强烈建议,在修改Pod数量的时候,如果是缩减(当前运行70个Pod,所见到20个),强烈建议先把Node上的Pod驱散,等驱散完了在重启,最后在激活Node
[root@VM-2-8-centos ~]# vim /etc/kubernetes/kubelet
# 增加
MAX_PODS="--max-pods=61"

4、修改/usr/lib/systemd/system/kubelet.service

注意:必须在启动命令后加入该变量,才可以使刚才定义的--max-pods=61生效。

5、重启kubelet
[root@VM-2-8-centos ~]# systemctl  daemon-reload
[root@VM-2-8-centos ~]# systemctl restart kubelet

查看修改结果

可以看到,已经完成修改的节点的最大可调度Pod数量已经调整为61。配置生效。

新建监控视图

在这里,我们可以部署Prometheus + Grafana,配置监控视图,更好的体现集群中节点的 Pod 分配率。

PromQL:
sum(kubelet_running_pod_count{node=~"$node"}) by (cluster, node) / sum(kube_node_status_allocatable_pods{node=~"$node"}) by (cluster, node)

效果展示:

原文链接:https://juejin.cn/post/6997242322769412127,作者:王骁

分享

2021-08-25


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK