利用LXCFS增强容器隔离性和资源可见性
Linuxs利用Cgroup实现了对容器的资源限制,但在容器内部依然缺省挂载了宿主机上的procfs的/proc目录,其包含如:meminfo, cpuinfo,stat, uptime等资源信息。一些监控工具如free/top或遗留应用还依赖上述文件内容获取资源配置和使用情况。当它们在容器中运行时,就会把宿主机的资源状态读取出来,引起错误和不便。
安装LXCFS
[root@localhost]# wget https://copr-be.cloud.fedoraproject.org/results/ganto/lxc3/epel-7-x86_64/01041891-lxcfs/lxcfs-3.1.2-0.2.el7.x86_64.rpm
[root@localhost]# yum install lxcfs-3.1.2-0.2.el7.x86_64.rpm
[root@localhost lxcfs]# ls #注意需要这个文件是空的
[root@localhost lxcfs]# lxcfs /var/lib/lxcfs/ & #启动服务
[root@localhost lxcfs]# docker run -it -m 256m --cpus="0.5" -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw -v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw -v /var/lib/lxcfs/proc/stat:/proc/stat:rw -v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw centos /bin/bash
验证结果
-
容器里面的top
-
服务器的top
k8s中应用
在k8s的服务器安装LXCFS,然后基础镜像都映射对应的目录。