没有合适的资源?快使用搜索试试~ 我知道了~
kmem问题造成K8S中pod内存溢出
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
4 下载量 33 浏览量
2021-01-20
13:57:14
上传
评论
收藏 28KB PDF 举报
温馨提示
试读
1页
问题排查 可以通过 $ cat /sys/fs/cgroup/memory/kubepods/burstable/pod//memory.kmem.slabinfo 来查看是否存在bug,如果返回 cat: memory.kmem.slabinfo: Input/output error 则不存在bug 问题解决 需要在 kubelet 和 docker 上都将 kmem account 功能关闭。kubelet 需要重新编译。 kubelet 版本是 v1.14 及以上,则可以通过在编译 kubelet 的时候加上 Build Tags 来关闭 $ git clone --branch
资源推荐
资源详情
资源评论
kmem问题造成问题造成K8S中中pod内存溢出内存溢出
问题排查问题排查
可以通过
$ cat /sys/fs/cgroup/memory/kubepods/burstable/pod//memory.kmem.slabinfo
来查看是否存在bug,如果返回
cat: memory.kmem.slabinfo: Input/output error
则不存在bug
问题解决问题解决
需要在 kubelet 和 docker 上都将 kmem account 功能关闭。kubelet 需要重新编译。
kubelet 版本是 v1.14 及以上,则可以通过在编译 kubelet 的时候加上 Build Tags 来关闭
$ git clone --branch v1.14.1 --single-branch --depth 1 [https://github.com/kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
$ cd kubernetes
$ KUBE_GIT_VERSION=v1.14.1 ./build/run.sh make kubelet GOFLAGS="-tags=nokmem"
kubelet 版本是 v1.13 及以下,需要修改代码后重新编译 kubelet
$ git clone --branch v1.12.8 --single-branch --depth 1 https://github.com/kubernetes/kubernetes
$ cd kubernetes
修改kmem_disabled.go
package fs
import (
"errors"
)
func EnableKernelMemoryAccounting(path string) error {
return nil
}
func setKernelMemory(path string, kernelMemoryLimit int64) error {
return errors.New("kernel memory accounting disabled in this runc build")
}
重新编译 kubelet:
$ KUBE_GIT_VERSION=v1.12.8 ./build/run.sh make kubelet
编译好的 kubelet 在
./_output/dockerized/bin/$GOOS/$GOARCH/kubelet 中。
同时需要升级 docker-ce 到 18.09.1 以上,此版本 docker 已经将 runc 的 kmem account 功能关闭
最后重启机器
作者:韶华白首白驹过隙
资源评论
weixin_38724663
- 粉丝: 7
- 资源: 892
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功