天天看點

如何優雅的限制 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)      

繼續閱讀