天天看点

如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

1Node节点默认的 Pod 数量

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

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

一般来说,我们只需要在 kubelet 启动命令中增加 ​

​--max-pods​

​ 参数,然后,重启 kubelet 服务,就生效。

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

2修改限制 Pod 启动数量

如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

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

接下来,我们来修改该参数值。

修改

  1. 登录 Node 节点,查看kubelet启动文件路径
[root@VM-2-8-centos ~]# systemctl status kubelet      
如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

从上图可以看到,kubelet 的启动文件为 ​

​/usr/lib/systemd/system/kubelet.service​

  1. 查看 systemd 启动文件
如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

可以看到,Environment 文件是引用 ​

​/etc/kubernetes/kubelet​

​​,至此,我们只需要在 ​

​/etc/kubernetes/kubelet​

​​中增加 ​

​max-pods​

​​ 的变量,然后在 ​

​/usr/lib/systemd/system/kubelet.service​

​ 中,将变量添加到启动参数后即可。

  1. 修改 /etc/kubernetes/kubelet

强烈建议,在修改 ​

​Pod​

​​ 数量的时候,如果是缩减(当前运行70个Pod,所见到20个),强烈建议先把 ​

​Node​

​​ 上的 ​

​Pod​

​驱散,等驱散完了在重启,最后在激活Node。

[root@VM-2-8-centos ~]# vim /etc/kubernetes/kubelet
# 增加
MAX_PODS="--max-pods=61"      
  1. 修改​

    ​/usr/lib/systemd/system/kubelet.service​

注意:必须在启动命令后加入该变量,才可以使刚才定义的 ​

​--max-pods=61​

​ 生效。

如何优雅的限制 Kubernetes 节点上运行的 Pod 数量
  1. 重启 kubelet
[root@VM-2-8-centos ~]# systemctl  daemon-reload
[root@VM-2-8-centos ~]# systemctl restart kubelet      

查看修改结果

如何优雅的限制 Kubernetes 节点上运行的 Pod 数量

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

3新建监控视图

在这里,我们可以部署 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)      

继续阅读