openshift/origin工作记录(5)——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=200m
- memory=3G
#设置预留给k8s组件的资源(主要组件)
kube-reserved:
- cpu=200m
- memory=1G

重启origin-node

# systemctl restart origin-node

验证

实验的pod需要设置limit range。

尽可能的增加deployment的replicas。

这里我把某个deployment的replicas设置成了20。

这里写图片描述

可以看见有部分pod创建失败。

扫描二维码关注公众号,回复: 2764279 查看本文章

查看创建失败的pod日志

这里写图片描述

可以看出,创建失败的原因是没有节点满足该pod的内存需求。

查看node节点的内存使用量

这里写图片描述

这里写图片描述

可以看出,node节点的内存还有2G多可用。

这样就可以避免node节点系统资源被使用完,导致节点挂掉。

猜你喜欢

转载自blog.csdn.net/huqigang/article/details/78962370