天天看點

openshift/origin工作記錄(5)——node節點系統資源預留設定node節點系統資源預留值驗證

實際應用中發現,如果不做處理,當叢集内應用數量不斷增加時,會占滿node節點的系統資源,導緻某node節點挂掉,同時也會造成openshift叢集的卡死。

解決思路為設定node節點系統資源預留值。

參考官方文檔:https://docs.openshift.org/latest/admin_guide/manage_nodes.html#configuring-node-resources

openshift的容器編排層采用的是K8S,故這裡同時參考了K8S的做法。

參考k8s部落格:《Kubernetes 針對資源緊缺處理方式的配置》、《kubernetes節點資源限制》

設定node節點系統資源預留值

如果尚未安裝叢集

修改ansible的hosts檔案,在變量openshift_node_kubelet_args中設定系統預留值。

如果已安裝叢集

修改每個節點的/etc/origin/node/node-config.yaml檔案。

修改檔案中的kubeletArguments。

我的修改示意如下(這裡我隻設定了cpu和記憶體的預留,預留值根據自己實際情況調整):

#設定預留系統服務的資源 
system-reserved:
- cpu=m
- memory=G
#設定預留給k8s元件的資源(主要元件)
kube-reserved:
- cpu=m
- memory=G
           

重新開機origin-node

驗證

實驗的pod需要設定limit range。

盡可能的增加deployment的replicas。

這裡我把某個deployment的replicas設定成了20。

openshift/origin工作記錄(5)——node節點系統資源預留設定node節點系統資源預留值驗證

可以看見有部分pod建立失敗。

檢視建立失敗的pod日志

openshift/origin工作記錄(5)——node節點系統資源預留設定node節點系統資源預留值驗證

可以看出,建立失敗的原因是沒有節點滿足該pod的記憶體需求。

檢視node節點的記憶體使用量

openshift/origin工作記錄(5)——node節點系統資源預留設定node節點系統資源預留值驗證
openshift/origin工作記錄(5)——node節點系統資源預留設定node節點系統資源預留值驗證

可以看出,node節點的記憶體還有2G多可用。

這樣就可以避免node節點系統資源被使用完,導緻節點挂掉。

繼續閱讀