一、容器與容器云
容器(Linux Container)也可譯為集裝箱,詳見《高冷的云原生,原來可以這樣理解》。
容器是計算演進(jìn)方向的一個節(jié)點(物理機、虛擬機、容器、無服務(wù)器計算)。
虛擬機采用的虛擬化技術(shù)是Hypervisor(KVM、XEN)。優(yōu)點是隔離性較好,存在的問題是每個虛擬機需要操作系統(tǒng)、依賴環(huán)境,運行起來比較重,啟動時間長。
容器采用的虛擬化技術(shù)是Namespace(《Linux 基礎(chǔ)知識:網(wǎng)絡(luò)命名空間》)和Cgroup,進(jìn)行操作系統(tǒng)內(nèi)核級的虛擬化。優(yōu)點是輕量、秒級啟動,缺點是容器間的隔離,安全性需要提高。
虛擬機的管理有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)度問題,但也存在著容器的安全隔離弱、運維管理成本高,需要進(jìn)行容量規(guī)劃、節(jié)點管理、服務(wù)組件告警處理等問題。
二、公有云是如何提供容器服務(wù)的?
以阿里云為例,提供了容器服務(wù)ACK、彈性容器實例ECI、Serverless容器服務(wù) ASK等。
下面我們來看下這些產(chǎn)品所解決的痛點是什么?
1. 容器服務(wù)ACK
針對Kubernetes學(xué)習(xí)曲線高、運維難等問題,公有云廠商通過適配和增強Kubernetes,簡化運維工作,推出Kubernetes托管服務(wù)。
阿里云推出了容器服務(wù)ACK(Alibaba Cloud Container Service for Kubernetes),提供不同等級的服務(wù):
用戶自己進(jìn)行容量規(guī)劃、節(jié)點(Master和Worker)部署( ECS或者裸金屬 )、維護(hù)等工作,稱為專有模式。
用戶只需部署Worker節(jié)點,Master節(jié)點和相關(guān)運維工作則由阿里云負(fù)責(zé),稱為托管模式。
如需擴容Kubernetes集群,則只需調(diào)整ECS個數(shù),其它工作則自動完成(響應(yīng)級別為分鐘級)。
- 彈性容器實例ECI
容器服務(wù)ACK中,不論是專用模式還是托管模式,都需要進(jìn)行容量的手工伸縮(分鐘級),并都存在資源利用不充分的問題(帶來成本)。
針對這些問題,阿里云推出了彈性容器實例ECI(Elastic Container Instance)。一個ECI就是一個Pod(Pod由阿里云來運維),供Kubernetes調(diào)度和運行。用戶只需提供打包好的鏡像,并為容器運行消耗的資源按需付費(免運維)。
ECI(容器形態(tài))和ECS(虛擬機形態(tài))具有同樣的地位,共享共用阿里云的計算基礎(chǔ)設(shè)施。
- Serverless Kubernetes(ASK)
基于ECI,阿里云推出了“Serverless”版本的ASK(Alibaba Serverless Kubernetes),不僅實現(xiàn)了Master節(jié)點的托管,還實現(xiàn)了計算節(jié)點的無限擴展。計算節(jié)點使用了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é)點上運行,接受kube-scheduler的調(diào)度請求,并根據(jù)請求信息創(chuàng)建和運行容器。
為了讓ECI這樣的容器彈性實例與Kubernetes集成,作為其中的Node節(jié)點,微軟Azure發(fā)起了Virtual Kubelet開源項目。其基本原理是Virtual Kubelet啟動時,會偽裝成一個Work節(jié)點,也就是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文章
6862瀏覽量
123506 -
虛擬化技術(shù)
+關(guān)注
關(guān)注
1文章
50瀏覽量
13073 -
虛擬機
+關(guān)注
關(guān)注
1文章
919瀏覽量
28323
發(fā)布評論請先 登錄
相關(guān)推薦
評論