前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【TKE】容器 ulimit 参数配置方法

【TKE】容器 ulimit 参数配置方法

原创
作者头像
Jokey
修改2024-04-01 16:00:22
2.3K0
修改2024-04-01 16:00:22
举报
文章被收录于专栏:云原生搬运工

背景

客户 Pod 调度虚拟节点的时候禁止 core 文件生成,需要执行ulimit -c 0这个命令。

进入容器 shell 环境测试配置是没有问题的, 看起来可以正常设置:

进入shell 测试可以配置成功
进入shell 测试可以配置成功

实际客户需求是可以启动自动执行修改:

客户诉求
客户诉求

由于 ulimit 参数比较特殊, 在 docker 运行时环境中可以通过 dockerd 的启动参数自定义设置,但是在 containerd(EKS 运行时)运行时中是没有办法配置的(默认不支持启动参数配置),尝试在容器启动时(command配置)后发现业务环境获取到的还是没有修改的默认值,如下图所示:

启动参数设置
启动参数设置

进入容器shell查看配置:

shell环境中依然是默认值
shell环境中依然是默认值

如何解决?

关键探索过程:

测试打印在修改ulimit 参数前后的真实参数值,验证修改是否真正生效:

测试打印修改前后的参数值
测试打印修改前后的参数值

查看容器执行命令输出的日志:

容器日志
容器日志

从日志可以看出来在 command 执行环境下参数是修改成功的,但是再进入shell 查看还是默认值,如下图:

登录容器查看却是默认值
登录容器查看却是默认值

解决办法

既然在 command 执行环境中 ulimit 设置参数是生效的, 若将应用的启动命令放在和设置参数同一个执行环境时,业务感知到的不就是修改的后的参数值了嘛,启动命令格式为ulimit -c xx && 应用启动命令 ,如下所示:

保证业务启动和参数修改在同一个执行环境
保证业务启动和参数修改在同一个执行环境

如此配置可完美解决 ulimit 参数配置问题, 同样的,如有其他 ulimit 参数需要自定义也是可以的。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 如何解决?
  • 解决办法
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档