前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openshift/origin工作记录(5)——node节点系统资源预留

openshift/origin工作记录(5)——node节点系统资源预留

原创
作者头像
胡了了
修改2018-03-06 17:11:39
1K0
修改2018-03-06 17:11:39
举报

实际应用中发现,如果不做处理,当集群内应用数量不断增加时,会占满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和内存的预留,预留值根据自己实际情况调整):

代码语言:txt
复制
#设置预留系统服务的资源 
system-reserved:
- cpu=200m
- memory=3G
#设置预留给k8s组件的资源(主要组件)
kube-reserved:
- cpu=200m
- memory=1G

重启origin-node

代码语言:txt
复制
# systemctl restart origin-node

验证

实验的pod需要设置limit range。

尽可能的增加deployment的replicas。

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

这里写图片描述
这里写图片描述

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

查看创建失败的pod日志

这里写图片描述
这里写图片描述

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

查看node节点的内存使用量

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设置node节点系统资源预留值
    • 如果尚未安装集群
      • 如果已安装集群
        • 修改每个节点的/etc/origin/node/node-config.yaml文件。
        • 重启origin-node
    • 验证
      • 尽可能的增加deployment的replicas。
        • 查看创建失败的pod日志
          • 查看node节点的内存使用量
          • 这样就可以避免node节点系统资源被使用完,导致节点挂掉。
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档