真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用LXCFS提升容器資源可見性

1.技術(shù)背景;

為尖扎等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及尖扎網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、尖扎網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

? ? Linuxs利用Cgroup實(shí)現(xiàn)了對(duì)容器的資源限制,但在容器內(nèi)部依然缺省掛載了宿主機(jī)上的procfs的/proc目錄,其包含如:meminfo, cpuinfo,stat, uptime等資源信息。一些監(jiān)控工具如free/top或遺留應(yīng)用還依賴上述文件內(nèi)容獲取資源配置和使用情況。當(dāng)它們?cè)谌萜髦羞\(yùn)行時(shí),就會(huì)把宿主機(jī)的資源狀態(tài)讀取出來,引起錯(cuò)誤和不便。

2.LXCFS簡介?

? CNCF社區(qū)中常見的做法是利用 lxcfs來提供容器中的資源可見性。lxcfs 是一個(gè)開源的FUSE(用戶態(tài)文件系統(tǒng))實(shí)現(xiàn)來支持LXC容器,它也可以支持Docker容器。

?githup網(wǎng)站:https://github.com/lxc/lxcfs

?LXCFS通過用戶態(tài)文件系統(tǒng),在容器中提供下列 procfs 的文件。

/proc/cpuinfo
/proc/diskstats
/proc/meminfo
/proc/stat
/proc/swaps
/proc/uptime

?

3.LXCFS工作示意圖:

利用LXCFS提升容器資源可見性? ?

比如,把宿主機(jī)的 /var/lib/lxcfs/proc/memoinfo 文件掛載到Docker容器的/proc/meminfo位置后。容器中進(jìn)程讀取相應(yīng)文件內(nèi)容時(shí),LXCFS的FUSE實(shí)現(xiàn)會(huì)從容器對(duì)應(yīng)的Cgroup中讀取正確的內(nèi)存限制。從而使得應(yīng)用獲得正確的資源約束設(shè)定

4.Docker?實(shí)戰(zhàn)提升容器資源可見性;

注:

本文采用CentOS 7.2 作為測(cè)試環(huán)境,并已經(jīng)開啟FUSE模塊支持。

fuse用途:

傳統(tǒng)的文件系統(tǒng)是操作系統(tǒng)的一部分,放在操作系統(tǒng)內(nèi)核里面實(shí)現(xiàn)。Fuse(Filesystem in Userspace), 一個(gè)用戶空間文件系統(tǒng)框架,提供給我們一組用于實(shí)現(xiàn)一個(gè)文件系統(tǒng)的API,使我們可以在用戶態(tài)實(shí)現(xiàn)自已的文件系統(tǒng)。

Docker for Mac/Minikube等開發(fā)環(huán)境由于采用高度剪裁過的操作系統(tǒng),無法支持FUSE,并運(yùn)行LXCFS進(jìn)行測(cè)試。
安裝 lxcfs 的RPM包

4.1.環(huán)境信息:

系統(tǒng)版本內(nèi)核版本軟件依賴軟件版本備注說明

CentOS Linux 7.2.151

3.10.0-1062.4.1.el7.x86_64

fuse-libs

fuse

fuse-devel

fuse-devel-2.9.2-7.el7.x86_64

fuse-libs-2.9.2-7.el7.x86_64

fuse-2.9.2-7.el7.x86_64

用戶態(tài)實(shí)現(xiàn)自已的文件系統(tǒng)。

dockerdocker-1.13.1-102.git7f2769b.el7.centos.x86_64docker服務(wù)
lxcfslxcfs-3.1.2-0.2.el7.x86_64.rpmLXCFS主程序軟件包

4.2?安裝依賴獲取軟件包并啟動(dòng)服務(wù)

yum?-y?install?fuse-devel?fuse?docker?lxc-templates?
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
rpm?-ivh?lxcfs-3.1.2-0.2.el7.x86_64.rpm
systemctl?start?docker
lxcfs?/var/lib/lxcfs?&

4.3?運(yùn)行docker 測(cè)試鏡像

docker?run?-itd?-m?256m?\????
-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??\??
ubuntu:16.04?/bin/bash

注意:

container_linux.go:247:?starting?container?process?caused?"process_linux.go:258:?applying?cgroup?configuration?for?process?caused?\"Cannot?set?property?TasksAccounting,?or?unknown?property.\""/usr/bin/docker-current:?Error?response?from?daemon:?oci?runtime?error:?container_linux.go:247:?starting?container?process?caused?"process_linux.go:258:?applying?cgroup?configuration?for?process?caused?\"Cannot?set?property?TasksAccounting,?or?unknown?property.\"".

解決:主要原因還是centos系統(tǒng)版本兼容性問題,如果將系統(tǒng)做更新升級(jí)

yum update?


4.4?查詢實(shí)驗(yàn)結(jié)果;

(1).設(shè)置過lxcfs?容器和設(shè)置lxcfs?對(duì)比? 內(nèi)存對(duì)比

利用LXCFS提升容器資源可見性

(2).未進(jìn)行設(shè)置容器;

利用LXCFS提升容器資源可見性

(1).設(shè)置過lxcfs?容器和設(shè)置lxcfs?對(duì)比? uptime?對(duì)比;

利用LXCFS提升容器資源可見性


5.Kubernetes 實(shí)戰(zhàn)提升容器資源可見性;


一些同學(xué)問過如何在Kubernetes集群環(huán)境中使用lxcfs,我們將給大家一個(gè)示例方法供參考。

首先我們要在集群節(jié)點(diǎn)上安裝并啟動(dòng)lxcfs,我們將用Kubernetes的方式,用利用容器和DaemonSet方式來運(yùn)行 lxcfs FUSE文件系統(tǒng)。

通過Github上獲得

git?clone?https://github.com/denverdino/lxcfs-initializer
cd?lxcfs-initializer




文章標(biāo)題:利用LXCFS提升容器資源可見性
轉(zhuǎn)載源于:http://weahome.cn/article/pjsjds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部