二吊插入一穴一区二区_神马亚洲视频_日本中文字幕视频_国产欧美一区二区三区精品酒店_窝窝社区一区二区_亚洲综合色站_久久xxxx_综合久久综合久久

底層Linux容器運(yùn)行時(shí)之發(fā)展史

放大字體  縮小字體 發(fā)布日期:2020-02-12  來(lái)源:來(lái)自互聯(lián)網(wǎng)  作者:來(lái)自互聯(lián)網(wǎng)  瀏覽次數(shù):422
導(dǎo)讀

如果 PID 1 進(jìn)程(實(shí)際上每個(gè)系統(tǒng)進(jìn)程)具有資源約束、安全性配置和名字空間,那么我可以說(shuō)系統(tǒng)上的每一個(gè)進(jìn)程都運(yùn)行在容器中。 容器運(yùn)行時(shí)工具也不過(guò)是修改了資源約束、安全性配置和名字空間,然后 …

“容器運(yùn)行時(shí)”是一個(gè)被過(guò)度使用的名詞。

在 Red Hat,我們樂(lè)意這么說(shuō),“容器即 Linux,Linux 即容器”。下面解釋一下這種說(shuō)法。傳統(tǒng)的容器是操作系統(tǒng)中的進(jìn)程,通常具有如下 3 個(gè)特性:

資源限制

當(dāng)你在系統(tǒng)中運(yùn)行多個(gè)容器時(shí),你肯定不希望某個(gè)容器獨(dú)占系統(tǒng)資源,所以我們需要使用資源約束來(lái)控制 CPU、內(nèi)存和網(wǎng)絡(luò)帶寬等資源。Linux 內(nèi)核提供了 cgroup 特性,可以通過(guò)配置控制容器進(jìn)程的資源使用。

安全性配置

一般而言,你不希望你的容器可以攻擊其它容器或甚至攻擊宿主機(jī)系統(tǒng)。我們使用了 Linux 內(nèi)核的若干特性建立安全隔離,相關(guān)特性包括 SELinux、seccomp 和 capabilities。

(LCTT 譯注:從 2.2 版本內(nèi)核開(kāi)始,Linux 將特權(quán)從超級(jí)用戶中分離,產(chǎn)生了一系列可以單獨(dú)啟用或關(guān)閉的 capabilities)

虛擬隔離

容器外的任何進(jìn)程對(duì)于容器而言都應(yīng)該不可見(jiàn)。容器應(yīng)該使用獨(dú)立的網(wǎng)絡(luò)。不同的容器對(duì)應(yīng)的進(jìn)程應(yīng)該都可以綁定 80 端口。每個(gè)容器的內(nèi)核映像image、根文件系統(tǒng)rootfs(rootfs)都應(yīng)該相互獨(dú)立。在 Linux 中,我們使用內(nèi)核的名字空間namespace特性提供虛擬隔離virtual separation。

那么,具有安全性配置并且在 cgroup 和名字空間下運(yùn)行的進(jìn)程都可以稱為容器。查看一下 Red Hat Enterprise Linux 7 操作系統(tǒng)中的 PID 1 的進(jìn)程 systemd,你會(huì)發(fā)現(xiàn) systemd 運(yùn)行在一個(gè) cgroup 下。

ps 命令讓我們看到 systemd 進(jìn)程具有 SELinux 標(biāo)簽:

以及 capabilities:

最后,查看 /proc/1/ns 子目錄,你會(huì)發(fā)現(xiàn) systemd 運(yùn)行所在的名字空間。

如果 PID 1 進(jìn)程(實(shí)際上每個(gè)系統(tǒng)進(jìn)程)具有資源約束、安全性配置和名字空間,那么我可以說(shuō)系統(tǒng)上的每一個(gè)進(jìn)程都運(yùn)行在容器中。

容器運(yùn)行時(shí)工具也不過(guò)是修改了資源約束、安全性配置和名字空間,然后 Linux 內(nèi)核運(yùn)行起進(jìn)程。容器啟動(dòng)后,容器運(yùn)行時(shí)可以在容器內(nèi)監(jiān)控 PID 1 進(jìn)程,也可以監(jiān)控容器的標(biāo)準(zhǔn)輸入/輸出,從而進(jìn)行容器進(jìn)程的生命周期管理。

容器運(yùn)行時(shí)

你可能自言自語(yǔ)道,“哦,systemd 看起來(lái)很像一個(gè)容器運(yùn)行時(shí)”。經(jīng)過(guò)若干次關(guān)于“為何容器運(yùn)行時(shí)不使用 systemd-nspawn 工具來(lái)啟動(dòng)容器”的郵件討論后,我認(rèn)為值得討論一下容器運(yùn)行時(shí)及其發(fā)展史。

Docker 通常被稱為容器運(yùn)行時(shí),但“容器運(yùn)行時(shí)container runtime”是一個(gè)被過(guò)度使用的詞語(yǔ)。當(dāng)用戶提到“容器運(yùn)行時(shí)”,他們其實(shí)提到的是為開(kāi)發(fā)人員提供便利的上層high-level工具,包括 Docker,CRI-O 和 RKT。這些工具都是基于 API 的,涉及操作包括從容器倉(cāng)庫(kù)拉取容器鏡像、配置存儲(chǔ)和啟動(dòng)容器等。啟動(dòng)容器通常涉及一個(gè)特殊工具,用于配置內(nèi)核如何運(yùn)行容器,這類(lèi)工具也被稱為“容器運(yùn)行時(shí)”,下文中我將稱其為“底層容器運(yùn)行時(shí)”以作區(qū)分。像 Docker、CRI-O 這樣的守護(hù)進(jìn)程及形如 Podman、Buildah 的命令行工具,似乎更應(yīng)該被稱為“容器管理器”。

早期版本的 Docker 使用 lxc 工具集啟動(dòng)容器,該工具出現(xiàn)在 systemd-nspawn 之前。Red Hat 最初試圖將 libvirt (libvirt-lxc)集成到 Docker 中替代 lxc 工具,因?yàn)?RHEL 并不支持 lxc。libvirt-lxc 也沒(méi)有使用 systemd-nspawn,在那時(shí) systemd 團(tuán)隊(duì)僅將 systemd-nspawn 視為測(cè)試工具,不適用于生產(chǎn)環(huán)境。

與此同時(shí),包括我的 Red Hat 團(tuán)隊(duì)部分成員在內(nèi)的上游upstream Docker 開(kāi)發(fā)者,認(rèn)為應(yīng)該采用 golang 原生的方式啟動(dòng)容器,而不是調(diào)用外部應(yīng)用。他們的工作促成了 libcontainer 這個(gè) golang 原生庫(kù),用于啟動(dòng)容器。Red Hat 工程師更看好該庫(kù)的發(fā)展前景,放棄了 libvirt-lxc。

后來(lái)成立 開(kāi)放容器組織Open Container Initiative(OCI)的部分原因就是人們希望用其它方式啟動(dòng)容器。傳統(tǒng)的基于名字空間隔離的容器已經(jīng)家喻戶曉,但人們也有虛擬機(jī)級(jí)別隔離virtual machine-level isolation的需求。Intel 和 Hyper.sh 正致力于開(kāi)發(fā)基于 KVM 隔離的容器,Microsoft 致力于開(kāi)發(fā)基于 Windows 的容器。OCI 希望有一份定義容器的標(biāo)準(zhǔn)規(guī)范,因而產(chǎn)生了 OCI 運(yùn)行時(shí)規(guī)范Runtime Specification。

OCI 運(yùn)行時(shí)規(guī)范定義了一個(gè) JSON 文件格式,用于描述要運(yùn)行的二進(jìn)制,如何容器化以及容器根文件系統(tǒng)的位置。一些工具用于生成符合標(biāo)準(zhǔn)規(guī)范的 JSON 文件,另外的工具用于解析 JSON 文件并在該根文件系統(tǒng)(rootfs)上運(yùn)行容器。Docker 的部分代碼被抽取出來(lái)構(gòu)成了 libcontainer 項(xiàng)目,該項(xiàng)目被貢獻(xiàn)給 OCI。上游 Docker 工程師及我們自己的工程師創(chuàng)建了一個(gè)新的前端工具,用于解析符合 OCI 運(yùn)行時(shí)規(guī)范的 JSON 文件,然后與 libcontainer 交互以便啟動(dòng)容器。這個(gè)前端工具就是 runc,也被貢獻(xiàn)給 OCI。雖然 runc 可以解析 OCI JSON 文件,但用戶需要自行生成這些文件。此后,runc 也成為了最流行的底層容器運(yùn)行時(shí),基本所有的容器管理工具都支持 runc,包括 CRI-O、Docker、Buildah、Podman 和 Cloud Foundry Garden 等。此后,其它工具的實(shí)現(xiàn)也參照 OCI 運(yùn)行時(shí)規(guī)范,以便可以運(yùn)行 OCI 兼容的容器。

Clear Containers 和 Hyper.sh 的 runV 工具都是參照 OCI 運(yùn)行時(shí)規(guī)范運(yùn)行基于 KVM 的容器,二者將其各自工作合并到一個(gè)名為 Kata 的新項(xiàng)目中。在去年,Oracle 創(chuàng)建了一個(gè)示例版本的 OCI 運(yùn)行時(shí)工具,名為 RailCar,使用 Rust 語(yǔ)言編寫(xiě)。但該 GitHub 項(xiàng)目已經(jīng)兩個(gè)月沒(méi)有更新了,故無(wú)法判斷是否仍在開(kāi)發(fā)。幾年前,Vincent Batts 試圖創(chuàng)建一個(gè)名為 nspawn-oci 的工具,用于解析 OCI 運(yùn)行時(shí)規(guī)范文件并啟動(dòng) systemd-nspawn;但似乎沒(méi)有引起大家的注意,而且也不是原生的實(shí)現(xiàn)。

如果有開(kāi)發(fā)者希望實(shí)現(xiàn)一個(gè)原生的 systemd-nspawn --oci OCI-SPEC.json 并讓 systemd 團(tuán)隊(duì)認(rèn)可和提供支持,那么CRI-O、Docker 和 Podman 等容器管理工具將可以像使用 runc 和 Clear Container/runV (Kata) 那樣使用這個(gè)新的底層運(yùn)行時(shí)。(目前我的團(tuán)隊(duì)沒(méi)有人參與這方面的工作。)

總結(jié)如下,在 3-4 年前,上游開(kāi)發(fā)者打算編寫(xiě)一個(gè)底層的 golang 工具用于啟動(dòng)容器,最終這個(gè)工具就是 runc。那時(shí)開(kāi)發(fā)者有一個(gè)使用 C 編寫(xiě)的 lxc 工具,在 runc 開(kāi)發(fā)后,他們很快轉(zhuǎn)向 runc。我很確信,當(dāng)決定構(gòu)建 libcontainer 時(shí),他們對(duì) systemd-nspawn 或其它非原生(即不使用 golang)的運(yùn)行 namespaces 隔離的容器的方式都不感興趣。

 
 
免責(zé)聲明
本文為會(huì)員免費(fèi)發(fā)布,僅代表發(fā)布者個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理。
 
 
国产精品国产a| 在线毛片观看| 春暖花开成人亚洲区| 500福利第一精品导航| 三级理论午夜在线观看| 国模冰冰炮一区二区| 99精品欧美一区二区三区综合在线| 日韩国产欧美一区二区三区| 国产一区不卡在线| 久久久久成人黄色影片| 亚洲精品亚洲人成人网| 亚洲欧美国产高清va在线播| 国产cdts系列另类在线观看| 久草免费在线视频| 性欧美video另类hd尤物| 91精品影视| 亚洲一区二区小说| 国产精品v一区二区三区| 国产精品久久久一区二区| 麻豆成人av在线| av在线综合网| 亚洲国产综合在线| 在线观看免费视频综合| 在线观看国产高清视频| av片在线免费观看| 97蜜桃久久| 色综合一区二区日本韩国亚洲 | 91蜜桃在线观看| 成人av在线看| 久久亚洲春色中文字幕久久久| 色综合视频一区二区三区高清| 精品少妇一区二区三区视频免付费 | 成人在线免费观看网站| 日韩成人在线观看视频| 你懂的视频欧美| 91在线观看下载| 黄a大片av永久免费| 四虎精品一区二区免费| 麻豆国产一区二区| 永久亚洲成a人片777777| 一本一道久久a久久精品蜜桃| 国产精品18久久久久久久久久久久| 亚洲自拍另类综合| 欧美一激情一区二区三区| 日本在线天堂| 国产精品4hu.www| 91精品1区| 亚洲成人免费视频| 视频福利在线| 欧美日韩一本| 秋霞av亚洲一区二区三| 亚洲第一精品自拍| 九九色在线视频| 日韩av在线播放网址| 国产日韩欧美一区二区三区乱码| 亚洲女同ⅹxx女同tv| 久久久久久久久久久久久久久久久久久| 日本最新在线视频| 人人狠狠综合久久亚洲婷| 国产高清成人在线| 五月天亚洲婷婷| 久久经典视频| 亚洲一本二本| 亚洲高清免费一级二级三级| 国产免费拔擦拔擦8x高清在线人| 久久99精品国产.久久久久| 欧美无砖专区一中文字| 69xxxx欧美| 午夜精品影视国产一区在线麻豆| 亚洲三级免费| 欧美日韩高清一区| 国产传媒在线| 成人国产一区二区三区精品| 亚洲成av人影院在线观看| 成人在线视频成人| 国产成人精品三级高清久久91| 国产欧美日韩在线| 中文字幕伊人| 欧美激情aⅴ一区二区三区| 午夜精品久久久久久| 日本动漫理论片在线观看网站| 狠久久av成人天堂| 国产精品免费观看视频| 免费特级黄毛片| 久久精品资源| 亚洲午夜精品一区二区国产| 国产亚洲美州欧州综合国| 五月天婷婷综合社区| 一区二区三区网站| 一区二区三区四区视频精品免费 | 久久精品在这里| 亚洲女人初尝黑人巨大| 欧美丰满日韩| 欧美本精品男人aⅴ天堂| 亚洲精品2区| 亚洲国产成人91精品| 欧美1级片网站| 精品国产伦一区二区三区观看方式| 免费观看亚洲| 性欧美长视频| 91久久久免费一区二区| 女子免费在线观看视频www| 激情图区综合网| 男人的天堂网av| 国产欧美日韩亚洲一区二区三区| 深夜爽爽视频| 欧美精品97| 深夜福利免费在线观看| 精久久久久久久久久久| 一二三四社区在线视频6| 欧美福利在线| 中文字幕在线观看| 日韩精品乱码免费| 免费亚洲网站| 成人午夜看片网址| 国产精品国产三级国产| 色伊人久久综合中文字幕| 精品久久免费看| 最新av在线| 在线免费av导航| 91久久青草| 成人免费av| 老鸭窝亚洲一区二区三区| youjizz国产精品| 亚洲一区二区不卡免费| 欧美年轻男男videosbes| aaa免费看大片| 日日夜夜精品一区| 亚洲精品一级二级| 国产精品探花在线观看| 亚洲欧美日本国产专区一区| 99久久精品免费看国产| 亚洲动漫第一页| 精品91自产拍在线观看一区| 四虎成人免费在线| 原纱央莉成人av片| 亚洲动漫在线观看| 美女精品在线| 久久欧美中文字幕| 色素色在线综合| av高清日电影| v片在线观看| 91欧美极品| 中文久久精品| 久久精品一区二区三区不卡| 色视频成人在线观看免| 黄色免费看网站| 啪啪免费视频一区| 风间由美中文字幕在线看视频国产欧美 | 在线免费观看黄色av| 久久青草免费| 欧美在线看片| 成人sese在线| 日本久久一区二区| 360天大佬第二季在线观看| 成人黄色动漫| 精品午夜久久| 国产麻豆午夜三级精品| 亚洲国产精品综合小说图片区| 亚洲国产美女精品久久久久∴| 午夜免费福利在线观看| 日韩视频1区| 久久一区欧美| 亚洲丝袜美腿综合| 亚洲激情免费观看| 菠萝菠萝蜜在线观看| 欧美成人基地| 另类中文字幕网| 亚洲成人综合网站| 8848hh四虎| 性感女国产在线| 国产精品久久观看| 成人av在线电影| 欧美人妇做爰xxxⅹ性高电影| 三级毛片在线免费看| 4438五月综合| 久久福利精品| 亚洲免费资源在线播放| 亚洲女同精品视频| 久草在线中文最新视频| 99久久婷婷| 久久亚洲精品国产精品紫薇| 777亚洲妇女| 日p在线观看| 婷婷综合成人| 国产精品一二二区| 在线亚洲一区二区| 飘雪影院手机免费高清版在线观看 | 99精品国产热久久91蜜凸| 欧美在线影院一区二区| 免费人成黄页在线观看忧物| 欧美视频二区欧美影视| 日精品一区二区三区| 午夜精品久久久久久| 一区二区三区性视频| 欧美大陆国产| 鲁大师成人一区二区三区| 欧美啪啪网站| 999精品在线| 国产三级精品三级在线专区|