摘要:器運行時是執(zhí)行容器并在節(jié)點上管理容器鏡像的軟件,目前,最廣為人知的容器運行時是,但在生態(tài)系統(tǒng)中還有其他容器運行時軟件,比如和。從理論上說,可以使用任何實現(xiàn)的容器運行時管理容器和容器鏡像。積極解決用戶報告的任何測試失敗和其他問題。
器運行時是執(zhí)行容器并在節(jié)點上管理容器鏡像的軟件,目前,最廣為人知的容器運行時是Docker,但在生態(tài)系統(tǒng)中還有其他容器運行時軟件,比如Rkt、Containerd和Lxd。Docker是現(xiàn)在于Kubernetes環(huán)境中使用的最常見的容器運行時,今天數(shù)人云給大家推薦一個Docker的組件——Containerd,它可能是更好的選擇。
本文是由谷歌的軟件工程師Lantao Liu和IBM的開源開發(fā)者M(jìn)ike Brown基于自身相關(guān)實踐,共同編寫。
Kubernetes 1.5引入了一個名為容器運行時接口(CRI)的內(nèi)部插件API,以方便地訪問不同的容器運行時,CRI允許Kubernetes使用各種容器運行時,而不需要重新編譯。從理論上說,Kubernetes可以使用任何實現(xiàn)CRI的容器運行時管理容器和容器鏡像。
在過去的6個月中,來自Google、Docker、IBM、中興和ZJU的工程師們一直在努力為CRI For Containerd,這個項目被稱為cri-containerd,用戶可以使用容器作為底層運行時運行Kubernetes集群,并且無需安裝Docker。
ContainerdContainerd是一個兼容OCI的核心容器運行時,它被設(shè)計為嵌入到更大的系統(tǒng)當(dāng)中,提供了在一個節(jié)點上執(zhí)行容器和管理鏡像的最小功能集,它是由Docker公司發(fā)起,并于2017年3月加入了CNCF,Docker引擎本身是建立在早期版本的容器之上,并且很快將更新到最新版本。
與Docker相比,Containerd的規(guī)模要小得多,提供了Golang客戶端API,而且更專注于可嵌入,較小范圍會導(dǎo)致一個更小的代碼庫,隨著時間的推移,其更容器維護(hù)以及匹配Kubernetes的需求,如下圖所示:
綜上所述,從技術(shù)的角度來看,Containerd是Kubernetes的容器進(jìn)行時比較好的選擇。
Cri-ContainerdCri-Containerd是對于容器的一個實現(xiàn),它在與Kubelet和 Containerd相同的節(jié)點上運行,在Kuberntes和Containerd之間的分層中,Cri-Containerd處理來自Kubelet的所有國際服務(wù)請求,并使用Containerd管理容器和容器鏡像,Cri-Containerd管理這些服務(wù)請求,在一定程度上是通過形成Containerd服務(wù)請求,同時添加足夠的附加功能來去支持CRI需求。
與當(dāng)前的Docker CRI實現(xiàn)(Dockershim)相比,Cri-Containerd消除了棧中的額外跳轉(zhuǎn),使堆棧更加穩(wěn)定和高效。
體系結(jié)構(gòu)可以通過下面這個例子來演示當(dāng)Kubele創(chuàng)建一個單一容器的時候,如何使用Cri-Containerd。
Kubelet通過國際運行時服務(wù)API調(diào)用了Cri-Containerd,用以創(chuàng)建一個Pod;
Cri-Containerd使用Containerd創(chuàng)建和啟動一個特殊的暫停容器(沙箱容器),并將該容器放在Pod的Cgroups和名稱空間中;
Containerd使用CNI配置了Pod的網(wǎng)絡(luò)名稱空間;
Kubelet隨后通過國際服務(wù)API調(diào)用了“容器”,以拉出應(yīng)用程序的容器的鏡像;
如果鏡像不存在于節(jié)點,則Cri-Containerd將進(jìn)一步使用Containerd來拉出鏡像;
然后,Kubelet通過“CRI”服務(wù)API調(diào)了“Cri-Containerd”通過拉取容器的鏡像來創(chuàng)建和啟動應(yīng)用程序容器;
Cri-Containerd最終調(diào)用Containerd來創(chuàng)建應(yīng)用程序容器,將其放入Pod的Cgroups和命名空間中,然后啟動該容器的新應(yīng)用程序容器。
在這些步驟之后,將創(chuàng)建并運行一個Pod及其相應(yīng)的應(yīng)用程序容器。
現(xiàn)階段狀態(tài)Cri-Containerd V1.0.0-alpha.0是在2017年9月25日發(fā)布的。
其功能完備,所有的Kubernetes的特性都得到了支持。
所有的CRI validation test(CRI validation test是一種測試框架,用于驗證是否符合Kubernetes的所有要求。地址:https://github.com/kubernetes...)
所有的 Node e2e Test都已通過(用于測試Kubernetes節(jié)點級功能的測試框架如Managing Pods、Mounting Volumes等,地址:https://github.com/kubernetes...)。
若想了解更多關(guān)于V1.0-Alpha的相關(guān)內(nèi)容,請前往:https://github.com/kubernetes...
延伸閱讀對于一個多節(jié)點集群安裝程序,并使用能應(yīng)用和Kubeadm啟動步驟請參見:https://github.com/kubernetes...
若想在Google云端從頭創(chuàng)建一個集群,請參見:https://github.com/kelseyhigh...
對于一個自發(fā)布Tarball的自定義安裝,請參見:https://github.com/kubernetes...
對于在本地VM上安裝LinuxKit,請參見:https://github.com/linuxkit/l...
下一階段Containerd承諾,在下一階段將主要改進(jìn)穩(wěn)定性和可用性方面的問題:
穩(wěn)定性:
在Kubernetes的測試基礎(chǔ)設(shè)施上建立一套完整的Kubernetes集成測試,包括Ubuntu、COS(容器化的OS 地址:https://cloud.google.com/cont...)等等。
積極解決用戶報告的任何測試失敗和其他問題。
可用性:
提高Crictl(https://github.com/kubernetes...)的用戶體驗,Crictl是所有的CRI容器運行時的可移植命令行工具,這里的目標(biāo)是使其易于用于調(diào)試和開發(fā)場景。
集成Kube-up.sh(https://kubernetes.io/docs/ge...)幫助用戶使用Cri-Containerd來提高Kubernetes集群的生產(chǎn)質(zhì)量。
改進(jìn)文檔。
預(yù)計在2017年底發(fā)布V1.0-Beta。
提供建議Cri-Containerd是一個Kubernetes的孵化器項目,地址:ttps://github.com/kubernetes-incubator/cri-containerd。歡迎提供任何具有建設(shè)性的意見和建議,具體的使用入門指南請參見:https://github.com/kubernetes...
社區(qū)Cri-Containerd是由Kubernetes Signode社區(qū)開發(fā)和維護(hù)的,如有相關(guān)的建議,可以加入社區(qū):
Sig-Node社區(qū)網(wǎng)站:https://github.com/kubernetes...
Slack:Kubernetes(kubernet.slack.com)的sig-節(jié)點通道:https://kubernetes.slack.com/
原文作者:Kubernetes
原文鏈接:http://blog.kubernetes.io/201...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27098.html
摘要:正在走遠(yuǎn),新年之初,小數(shù)精選過去一年閱讀量居高的技術(shù)干貨,從容器到微服務(wù)云原生,匯集成篇精華集錦,充分反映了這一年的技術(shù)熱點走向。此文值得收藏,方便隨時搜索和查看。,小數(shù)將繼續(xù)陪伴大家,為朋友們奉獻(xiàn)更有逼格的技術(shù)內(nèi)容。 2017正在走遠(yuǎn),新年之初,小數(shù)精選過去一年閱讀量居高的技術(shù)干貨,從容器、K8S 到微服務(wù)、云原生、Service Mesh,匯集成52篇精華集錦,充分反映了這一年的技...
摘要:在這一假設(shè)之下,是一個新奇的觀點編排才是容器生態(tài)的中心,而引擎就我們所知,只是一個開發(fā)工具。是特有的概念,但容器生態(tài)系統(tǒng)必須采用這個概念。 showImg(https://segmentfault.com/img/remote/1460000007157260?w=640&h=480); 開源項目 CRI-O ,其前身為 OCID ,官方簡介是 OCI-based implementa...
摘要:在被納入后,與之爭日趨白熱化。一如微軟曾經(jīng)試圖通過在中安裝來排擠,現(xiàn)在正在嘗試將融入到,以此來打擊,,和。如同微軟確確實實提升了的性能。瀏覽器突出了微軟的優(yōu)勢,所以他們在年內(nèi)都沒有繼續(xù)開發(fā)了。 在 Swarm 被納入 Docker 1.12后,Swarm 與 K8S 之爭日趨白熱化。本文作者 Adriaan de Jonge 身為 Xebia CTO ,專精 DevOps 及持續(xù)交付,...
摘要:為什么在節(jié)點直接起容器網(wǎng)絡(luò)不通為什么在節(jié)點直接起容器網(wǎng)絡(luò)不通為什么在節(jié)點直接起容器網(wǎng)絡(luò)不通使用自己的插件,而直接用起的容器并不能使用該插件,因此網(wǎng)絡(luò)不通。 UK8S 集群常見問題本篇目錄1. UK8S 完全兼容原生 Kubernetes API嗎?2. UK8S 人工支持3. UK8S對Node上發(fā)布的容器有限制嗎?如何修改?4. 為什么我的容器一起來就退出了?5. Docker 如何調(diào)整日...
閱讀 1145·2021-11-16 11:42
閱讀 2928·2021-10-12 10:18
閱讀 2879·2021-09-24 09:48
閱讀 3494·2019-08-30 15:56
閱讀 1560·2019-08-30 14:17
閱讀 3068·2019-08-29 12:14
閱讀 931·2019-08-27 10:51
閱讀 2050·2019-08-26 13:28