JVM会根据宿主机的内存去分配堆内存,所以经常在给容器配额的场景下直接导致java类应用起不来,当然如java10会更好的适配容器,所以本文通过介绍lxcfs来解决容器里面资源可见性问题,让容器内看到的是真实的容器配额资源量。
本文主要讲解如何使用lxcfs增强容器的隔离性和可见性。并使用二进制部署包使用,减轻部署难度。可在离线环境中使用。
基于LXCFS增强docker容器隔离性的分析https://blog.csdn.net/s1234567_89/article/details/50722915
Kubernetes之路 2 - 利用LXCFS提升容器资源可见性https://yq.aliyun.com/articles/566208
使用二进制lxcfs包进行安装部署,下载地址为:https://github.com/cuisongliu/lxcfs/releases/download/lxcfs-3.0.3-binary-install/lxcfs.tar.gz
确保系统中是否有fusermount命令,系统使用fusermount进行卸载挂载点。
安装如图:
lxcfs安装步骤
操作是不是很easy?下面我们对比一下效果。
首先是在没有安装lxcfs的主机上执行命令:
效果如图所示:
未使用lxcfs效果图
接下来我们在安装了lxcfs的主机上同样执行命令
效果如图所示:
到这里lxcfs已经生效了。
这里讲解了docker的使用,对于k8s用户建议使用 https://github.com/fanux/kube/releases/tag/v.12.5-lxcfs-gate 替换k8s的kebelet即可。这是在原生k8s基础上定制集成的一个版本,这样所有的k8s pod都会默认使用了lxcfs