成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

runc 1.0-rc6 發(fā)布之際

idisfkj / 2390人閱讀

摘要:但當(dāng)時(shí)并沒有進(jìn)行正式版發(fā)布,轉(zhuǎn)而三個(gè)月后,稍做了更新。發(fā)布周期不明確。總結(jié)以上就是本次關(guān)于發(fā)布時(shí)的一些碎碎念,對(duì)這種情況頗有感慨,符合規(guī)范并沒有那么好做,尤其是做基礎(chǔ)支撐的時(shí)候。

如果你在用 Docker 或者 Kubernetes 想必你對(duì) 容器運(yùn)行時(shí) 這個(gè)概念應(yīng)該不會(huì)太陌生。

Docker 中,當(dāng)你使用 docker info 即可查看當(dāng)前所使用的 runtime。

?  ~ docker info
...
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
...
Swarm: inactive
Runtimes: nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
...

同時(shí),你還可以自己在 /etc/docker/daemon.json 中增加支持的 runtime , 以及在 docker run 的時(shí)候,通過 --runtime 參數(shù)配置所使用的 runtime 。

什么是 runc

簡單來說,它是 OCI 標(biāo)準(zhǔn)的一種實(shí)現(xiàn)。 OCI 標(biāo)準(zhǔn)包含 運(yùn)行時(shí)標(biāo)準(zhǔn)鏡像標(biāo)準(zhǔn) 兩個(gè)部分,而 OCI 這個(gè)組織則是由 Docker, CoreOS 和其他的一些公司共同發(fā)起創(chuàng)建的,致力于將容器運(yùn)行時(shí)和格式標(biāo)準(zhǔn)化。

即:凡是遵守此標(biāo)準(zhǔn)的實(shí)現(xiàn),無論是 Docker 還是 rkt 或者其他的運(yùn)行時(shí)實(shí)現(xiàn),均可以通過標(biāo)準(zhǔn)的鏡像啟動(dòng)容器。

runc 則是在 OCI 成立后,Docker 將其容器運(yùn)行時(shí) libcontainer 貢獻(xiàn)出來后,并加以改造而成的。而 libcontainer 也是在 Docker 0.9 版本開始加入,我也是從這個(gè)版本開始使用它。

當(dāng)然 libcontainer 出現(xiàn)的本意不僅是替換當(dāng)時(shí)的 LXC 依賴,同時(shí)也希望能以此作為規(guī)范(讓其他的項(xiàng)目使用)最終,目標(biāo)達(dá)成。

runc 如何使用

runc 的使用本不是本篇的重點(diǎn),稍微帶過。

?  ~ docker export -o debian.tar  `docker create debian`
?  ~ ls
debian.tar
?  ~ tar -C rootfs -xf debian.tar
?  ~ ls
debian.tar   rootfs
?  ~ tree -L 1 -a rootfs
rootfs
├── bin
├── boot
├── dev
├── .dockerenv
├── etc
├── home
├── lib
├── lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var

19 directories, 1 file

通過以上操作,得到了運(yùn)行一個(gè)容器所必須的 rootfs,當(dāng)然,上面看到我是通過 docker 來獲得這個(gè)文件的,但其實(shí)這只是為了方便罷了,docker 并不是必須的。

?  ~ runc spec
?  ~ ls
config.json  debian.tar  rootfs

通過上面的操作,會(huì)得到一個(gè)基本的 config.json 的配置文件,這里面包含著運(yùn)行一個(gè)容器所需要的一些配置。其中會(huì)包含著一些例如:

"ociVersion": "1.0.1-dev"

這種用于標(biāo)識(shí)規(guī)范版本號(hào)的信息。

接下來稍微對(duì) config.json 文件進(jìn)行查看,便可以看到未通過 user Namespace 進(jìn)行隔離,所以我們需要以 root 權(quán)限運(yùn)行我們的容器。

?  ~ sudo runc run debian
# ls                                      
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# hostname    
runc               
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

可以看到容器已經(jīng)運(yùn)行成功。當(dāng)然,我們也可以不通過 root 權(quán)限運(yùn)行容器,只要簡單的通過 user Namespace 進(jìn)行隔離,并添加 usergroup 的映射之類的便可以了。此處不做贅述。

為何有 runc 1.0-rc6 存在

我們知道,OCI 在 2015 年成立,在 2017 年 7 月的時(shí)候正式宣布 OCI v1.0.0 release 。其實(shí)在 2017 年的 11 月還 release 了 v1.0.1 版本。

前面已經(jīng)提過 runcOCI 的官方實(shí)現(xiàn),那為何時(shí)過一年還未正式 release 1.0 呢?這里面原因其實(shí)說來也復(fù)雜,這也是這篇文章想聊的部分。

首先:runc 1.0 我們想正式 relase 么? 答案是 想。其實(shí)早在 2017 年 8 月份的時(shí)候 runc 1.0-rc4 就已經(jīng)支持 OCI v1.0.0 了。但當(dāng)時(shí)并沒有進(jìn)行正式版發(fā)布,轉(zhuǎn)而三個(gè)月后, OCI 稍做了更新。

到 2018 年 2 月份的時(shí)候,發(fā)布了 runc 1.0-rc5 -- "The Final Stretch" 這個(gè)版本取名其實(shí)已經(jīng)很明確了 The Final Stretch 已經(jīng)將這個(gè)版本作為正式版本前的最后一個(gè)版本進(jìn)行發(fā)布了。

但是,提筆前又發(fā)了新版本 runc 1.0-rc6 -- "For Real This Time" ,這個(gè)版本在預(yù)期中其實(shí)是想發(fā)布 1.0 的。我們討論后總結(jié)的結(jié)論主要有以下幾個(gè):

不夠規(guī)范。一方面是 runc 在持續(xù)的迭代改進(jìn),另一方面是目前很多其他的運(yùn)行時(shí)實(shí)現(xiàn)的一些 hooks 依賴于當(dāng)前的一些實(shí)現(xiàn),而這些實(shí)現(xiàn),并不完全符合規(guī)范。這就造成了一旦修正了這些 “錯(cuò)誤” 勢必造成其他運(yùn)行時(shí)的不穩(wěn)定和錯(cuò)誤。

發(fā)布周期不明確。目前容器相關(guān)生態(tài)中較為核心的項(xiàng)目,估計(jì)就 runc 的發(fā)布周期比較 “佛系” 了,我們甚至沒有一個(gè)明確的發(fā)布周期。這次的總結(jié)中,我以 Kubernetes 的發(fā)布做了例子:

Kubernetes Release Date Cadence
Christening of 1.0 10th July 2015 ~one year from inception
From 1.0 to 1.1 9th November 2015 122 days
From 1.1 to 1.2 16th March 2016 128 days
From 1.2 to 1.3 1st July 2016 107 days
From 1.3 to 1.4 26th September 2016 87 days
From 1.4 to 1.5 12th December 2016 77 days
From 1.5 to 1.6 28th March 2017 106 days
From 1.6 to 1.7 30th June 2017 94 days
From 1.7 to 1.8 28th September 2017 90 days
From 1.8 to 1.9 15th December 2017 78 days
From 1.9 to 1.10 28th March 2018 103 days
From 1.10 to 1.11 3rd July 2018 97 days
From 1.11 to 1.12 ETA 25th September 2018 84 days

以這個(gè)發(fā)布記錄來看的話,每三個(gè)月作為以此發(fā)布相對(duì)合適,也比較通用。

至于這次,runc 1.0-rc6 的發(fā)布,將作為特性凍結(jié)發(fā)布,直到下次發(fā)布前,重點(diǎn)都將放在 “符合規(guī)范” 上面,同時(shí)也給其他的運(yùn)行時(shí)實(shí)現(xiàn)充足的時(shí)間,用于做好兼容之類的。

總結(jié)

以上就是本次關(guān)于 runc 1.0-rc6 發(fā)布時(shí)的一些碎碎念,對(duì)這種情況頗有感慨,“符合規(guī)范” 并沒有那么好做,尤其是做基礎(chǔ)支撐的時(shí)候。


可以通過下面二維碼訂閱我的文章公眾號(hào)【MoeLove】

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27572.html

相關(guān)文章

  • runc 1.0-rc6 發(fā)布之際

    摘要:但當(dāng)時(shí)并沒有進(jìn)行正式版發(fā)布,轉(zhuǎn)而三個(gè)月后,稍做了更新。發(fā)布周期不明確??偨Y(jié)以上就是本次關(guān)于發(fā)布時(shí)的一些碎碎念,對(duì)這種情況頗有感慨,符合規(guī)范并沒有那么好做,尤其是做基礎(chǔ)支撐的時(shí)候。 如果你在用 Docker 或者 Kubernetes 想必你對(duì) 容器運(yùn)行時(shí) 這個(gè)概念應(yīng)該不會(huì)太陌生。 在 Docker 中,當(dāng)你使用 docker info 即可查看當(dāng)前所使用的 runtime。 ? ~ ...

    singerye 評(píng)論0 收藏0
  • runc 1.0-rc6 發(fā)布之際

    摘要:但當(dāng)時(shí)并沒有進(jìn)行正式版發(fā)布,轉(zhuǎn)而三個(gè)月后,稍做了更新。發(fā)布周期不明確??偨Y(jié)以上就是本次關(guān)于發(fā)布時(shí)的一些碎碎念,對(duì)這種情況頗有感慨,符合規(guī)范并沒有那么好做,尤其是做基礎(chǔ)支撐的時(shí)候。 如果你在用 Docker 或者 Kubernetes 想必你對(duì) 容器運(yùn)行時(shí) 這個(gè)概念應(yīng)該不會(huì)太陌生。 在 Docker 中,當(dāng)你使用 docker info 即可查看當(dāng)前所使用的 runtime。 ? ~ ...

    qujian 評(píng)論0 收藏0
  • runc 1.0-rc7 發(fā)布之際

    摘要:在年月底時(shí),我寫了一篇文章發(fā)布之際。為何有存在前面已經(jīng)基本介紹了相關(guān)背景,并且也基本明確了就是在正式發(fā)布之前的最后一個(gè)版本,那為什么會(huì)出現(xiàn)呢我們首先要介紹今年的一個(gè)提權(quán)漏洞。 在 18 年 11 月底時(shí),我寫了一篇文章 《runc 1.0-rc6 發(fā)布之際》 。如果你還不了解 runc 是什么,以及如何使用它,請(qǐng)參考我那篇文章。本文中,不再對(duì)其概念和用法等進(jìn)行說明。 在 runc 1....

    zhunjiee 評(píng)論0 收藏0
  • runc 1.0-rc7 發(fā)布之際

    摘要:在年月底時(shí),我寫了一篇文章發(fā)布之際。為何有存在前面已經(jīng)基本介紹了相關(guān)背景,并且也基本明確了就是在正式發(fā)布之前的最后一個(gè)版本,那為什么會(huì)出現(xiàn)呢我們首先要介紹今年的一個(gè)提權(quán)漏洞。 在 18 年 11 月底時(shí),我寫了一篇文章 《runc 1.0-rc6 發(fā)布之際》 。如果你還不了解 runc 是什么,以及如何使用它,請(qǐng)參考我那篇文章。本文中,不再對(duì)其概念和用法等進(jìn)行說明。 在 runc 1....

    YanceyOfficial 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<