容器重新定義了操作系統(tǒng)(OS)的角色。隨著大量繁重的工作轉(zhuǎn)移到容器運(yùn)行時(shí),操作系統(tǒng)已經(jīng)成為一個(gè)提供物理資源訪問的“薄層”。這種轉(zhuǎn)變催生了一種新的操作系統(tǒng),稱為容器優(yōu)化操作系統(tǒng)(container optimized OS,COS)。
COS構(gòu)成了云原生堆棧的基礎(chǔ)層,位于集群的物理基礎(chǔ)設(shè)施之上一層。與傳統(tǒng)操作系統(tǒng)相比,COS是一種輕量級(jí)操作系統(tǒng),占用空間小得多。它包含運(yùn)行容器運(yùn)行時(shí)所需的最基本組件。選擇正確的COS對(duì)維護(hù)CaaS部署有很大幫助。
用戶可以選擇紅帽公司的Fedora CoreOS,Talos System的Talos,Kinvolk GmbH的Flatcar Container Linux,或者SUSE的RancherOS,來部署COS。
大多數(shù)供應(yīng)商提供可選的商業(yè)訂閱計(jì)劃,包括定期更新、修補(bǔ)程序和專業(yè)支持。
容器運(yùn)行時(shí)
容器運(yùn)行時(shí)負(fù)責(zé)管理容器的生命周期,提供執(zhí)行環(huán)境,并充當(dāng)工作負(fù)載和主機(jī)操作系統(tǒng)之間的接口。
2015年,Linux基金會(huì)發(fā)起了開放容器倡議(OCI),以實(shí)現(xiàn)容器運(yùn)行時(shí)實(shí)現(xiàn)的平等。OCI目前定義了兩個(gè)規(guī)范:運(yùn)行時(shí)規(guī)范和鏡像格式規(guī)范。
根據(jù)OCI網(wǎng)站,運(yùn)行時(shí)規(guī)范概述了如何運(yùn)行解包到磁盤上的“文件系統(tǒng)捆綁包”。在較高的層上,OCI實(shí)現(xiàn)將下載OCI鏡像,然后將該鏡像解壓到OCI運(yùn)行時(shí)文件系統(tǒng)包中。
鏡像格式規(guī)范定義了如何創(chuàng)建OCI鏡像(通常由構(gòu)建系統(tǒng)完成),以及如何輸出鏡像清單、文件系統(tǒng)(層)序列化和映像配置。
Mirantis收購Docker Enterprise后,商業(yè)版Docker Engine(Docker Engine Enterprise)由Mirantis出售,提供企業(yè)級(jí)支持和專業(yè)服務(wù)。
Containerd project已經(jīng)發(fā)展成為容器運(yùn)行時(shí)的行業(yè)標(biāo)準(zhǔn)。它是CNCF的一個(gè)畢業(yè)項(xiàng)目,在許多生產(chǎn)環(huán)境中使用。CRI-O目前是一個(gè)社區(qū)積極參與的CNCF孵化項(xiàng)目。
Docker Engine(現(xiàn)在是Docker CE)是容器管理平臺(tái)使用的最流行的容器運(yùn)行時(shí)之一。Frakti是一個(gè)基于管理程序的Kubernetes容器運(yùn)行時(shí),通過在專用虛擬機(jī)中運(yùn)行pod,提供了更強(qiáng)大的隔離。其他選擇還有Kata Containers和runC。