一、容器與容器云
容器(Linux Container)也可譯為集裝箱,詳見《高冷的云原生,原來可以這樣理解》。
容器是計算演進(jìn)方向的一個節(jié)點(diǎn)(物理機(jī)、虛擬機(jī)、容器、無服務(wù)器計算)。
虛擬機(jī)采用的虛擬化技術(shù)是Hypervisor(KVM、XEN)。優(yōu)點(diǎn)是隔離性較好,存在的問題是每個虛擬機(jī)需要操作系統(tǒng)、依賴環(huán)境,運(yùn)行起來比較重,啟動時間長。
容器采用的虛擬化技術(shù)是Namespace(《Linux 基礎(chǔ)知識:網(wǎng)絡(luò)命名空間》)和Cgroup,進(jìn)行操作系統(tǒng)內(nèi)核級的虛擬化。優(yōu)點(diǎn)是輕量、秒級啟動,缺點(diǎn)是容器間的隔離,安全性需要提高。
虛擬機(jī)的管理有CloudStack、OpenStack。
容器的管理也出現(xiàn)了Mesos、Swarm、Kubernetes。
Kubernetes的基礎(chǔ)知識,可查閱:
Kubernetes:術(shù)語解釋
Kubernetes:集群部署
Kubernetes:邏輯組件
Kubernetes:Pod簡易理解
Kubernetes:flannel網(wǎng)絡(luò)
Kubernetes:應(yīng)用部署與訪問
Kubernetes較好地解決了應(yīng)用的編排與調(diào)度問題,但也存在著容器的安全隔離弱、運(yùn)維管理成本高,需要進(jìn)行容量規(guī)劃、節(jié)點(diǎn)管理、服務(wù)組件告警處理等問題。
二、公有云是如何提供容器服務(wù)的?
以阿里云為例,提供了容器服務(wù)ACK、彈性容器實例ECI、Serverless容器服務(wù) ASK等。

下面我們來看下這些產(chǎn)品所解決的痛點(diǎn)是什么?
1. 容器服務(wù)ACK
針對Kubernetes學(xué)習(xí)曲線高、運(yùn)維難等問題,公有云廠商通過適配和增強(qiáng)Kubernetes,簡化運(yùn)維工作,推出Kubernetes托管服務(wù)。
阿里云推出了容器服務(wù)ACK(Alibaba Cloud Container Service for Kubernetes),提供不同等級的服務(wù):
用戶自己進(jìn)行容量規(guī)劃、節(jié)點(diǎn)(Master和Worker)部署( ECS或者裸金屬 )、維護(hù)等工作,稱為專有模式。
用戶只需部署Worker節(jié)點(diǎn),Master節(jié)點(diǎn)和相關(guān)運(yùn)維工作則由阿里云負(fù)責(zé),稱為托管模式。
如需擴(kuò)容Kubernetes集群,則只需調(diào)整ECS個數(shù),其它工作則自動完成(響應(yīng)級別為分鐘級)。
- 彈性容器實例ECI
容器服務(wù)ACK中,不論是專用模式還是托管模式,都需要進(jìn)行容量的手工伸縮(分鐘級),并都存在資源利用不充分的問題(帶來成本)。
針對這些問題,阿里云推出了彈性容器實例ECI(Elastic Container Instance)。一個ECI就是一個Pod(Pod由阿里云來運(yùn)維),供Kubernetes調(diào)度和運(yùn)行。用戶只需提供打包好的鏡像,并為容器運(yùn)行消耗的資源按需付費(fèi)(免運(yùn)維)。
ECI(容器形態(tài))和ECS(虛擬機(jī)形態(tài))具有同樣的地位,共享共用阿里云的計算基礎(chǔ)設(shè)施。
- Serverless Kubernetes(ASK)
基于ECI,阿里云推出了“Serverless”版本的ASK(Alibaba Serverless Kubernetes),不僅實現(xiàn)了Master節(jié)點(diǎn)的托管,還實現(xiàn)了計算節(jié)點(diǎn)的無限擴(kuò)展。計算節(jié)點(diǎn)使用了Virtual Node來管理ECI(POD),用戶只需提交Yaml 文件即可創(chuàng)建Pod。

每個Virtual Node最多支撐3000個POD,如POD數(shù)量超過3000個,則需要創(chuàng)建多個Virtual Node。

那么,Virtual Node是如何實現(xiàn)的呢?
在《Kubernetes:邏輯組件》一文中,我們知道Kubernetes集群的邏輯組件包含kubelet,而kubelet的作用就是在Node節(jié)點(diǎn)上運(yùn)行,接受kube-scheduler的調(diào)度請求,并根據(jù)請求信息創(chuàng)建和運(yùn)行容器。
為了讓ECI這樣的容器彈性實例與Kubernetes集成,作為其中的Node節(jié)點(diǎn),微軟Azure發(fā)起了Virtual Kubelet開源項目。其基本原理是Virtual Kubelet啟動時,會偽裝成一個Work節(jié)點(diǎn),也就是Virtual Node,向kube-api-server組件注冊,當(dāng)有請求調(diào)度到Virtual Node時,Virtual Kubelet調(diào)用Provider的API接口,實現(xiàn)Pod的創(chuàng)建。
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7291瀏覽量
128318 -
虛擬化技術(shù)
+關(guān)注
關(guān)注
1文章
52瀏覽量
13387 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
966瀏覽量
30096
發(fā)布評論請先 登錄

如何才能提供容器云服務(wù)?
評論