圖3 阿里云容器服務(wù)整體架構(gòu)
另外是阿里云的專有云輸出,因?yàn)閷S性七@個(gè)東西一旦部署到用戶的機(jī)房之后,你升級就變得非常麻煩,有了容器之后,它的鏡像的管理和升級就非常方便了。還有一個(gè)優(yōu)點(diǎn),它可以實(shí)現(xiàn)管控部署的資源優(yōu)化,因?yàn)樵瓉砜赡芩械墓芸囟际仟?dú)占機(jī)器的,這樣的話比如說你布很多服務(wù)就會(huì)占很多機(jī)器,有了容器之后管控就可以共享機(jī)器了,減少了管控所占的資源,提高了用戶能使用的資源的數(shù)量。
第二是阿里云的容器服務(wù),這是我們在阿里云公有云上推出的一款產(chǎn)品,作用是幫用戶管理集群和部署應(yīng)用,當(dāng)然還提供更多高級別的服務(wù)。
第三是阿里云高性能計(jì)算 HPC也會(huì)用到容器,在高計(jì)算領(lǐng)域,它的安裝很復(fù)雜、很麻煩,經(jīng)常比如說你拿到一個(gè)帶顯卡的機(jī)器,你在上面部署基礎(chǔ)的應(yīng)用,可能得花掉你一周的時(shí)間,如果你的應(yīng)用是容器化的,這個(gè)事情就可以放到容器里面去,你只要關(guān)心自己的應(yīng)用就可以了,可以大大地提高應(yīng)用部署的效率。
下面重點(diǎn)介紹一下阿里云容器服務(wù)的一些特性,我們先看一下整體的架構(gòu),整體來說,阿里云容器服務(wù)是一個(gè)集群托管的模式,機(jī)器是用戶的,但是管控是我們提供的。現(xiàn)在相當(dāng)于我們幫用戶管理他的機(jī)器,我們通過某一些界面化、某一些API的信息讓用戶去管理集群以及管理他的應(yīng)用。
用戶的機(jī)器下面會(huì)裝Engine、下面會(huì)跑容器,我們這邊的管控提供一個(gè)控制臺(tái),提供集群的創(chuàng)建和擴(kuò)容這樣的功能,然后提供服務(wù)、注冊和發(fā)現(xiàn)的功能,提供應(yīng)用生命周期管理和使用調(diào)度的功能。同時(shí)我們還會(huì)把很多阿里云上的服務(wù)都集成進(jìn)來,比如說我們集成了SLB、ECS等功能,達(dá)到的目標(biāo)讓用戶只關(guān)心我的應(yīng)用,而不需要關(guān)心底下的機(jī)器。
我們可以看一下我們提供的功能,從四個(gè)角度講。
第一個(gè)是集群的管理,這是最基本的功能,我們可以幫用戶一鍵創(chuàng)建出一個(gè)容器集群,同時(shí)支持公有云、專有云、混合云以及敏捷版,公有云包括GPU的機(jī)器,專有云是部署在用戶機(jī)房的,混合云就是你可以一部分集群管控在我們的機(jī)房,但是真正的用戶機(jī)器在你自己的機(jī)房。你可以實(shí)現(xiàn)應(yīng)用跨云的統(tǒng)一部署。另外還支持bare metal敏捷版。
第二是鏡像服務(wù),這是對容器化很重要的服務(wù),我們支持公有和私有的倉庫,你可以有自己的私有倉庫,同時(shí)支持DockerHub的加速,我們提供這個(gè)加速的功能可以讓你像訪問國內(nèi)的機(jī)器一樣,另外可以連接第三方代碼庫,這樣,其實(shí)你可以當(dāng)成CICD系統(tǒng)的最重要的環(huán)節(jié),你可以從代碼到最終生成鏡像,甚至到最后部署把它全自動(dòng)打通。
第三是應(yīng)用生命周期的管理,支持Swarm和Swarm Mode兩種模式。
同時(shí)支持Rolling Update、藍(lán)綠發(fā)布、離線與定時(shí)任務(wù)。
最后是微服務(wù)的支持,微服務(wù)它不是為容器而生,但是有了容器之后它的實(shí)現(xiàn)會(huì)變得更簡單一些,為了微服務(wù)的支持,我們提供了一些很重要的基礎(chǔ)的功能。包括服務(wù)發(fā)現(xiàn)、負(fù)載均衡、彈性伸縮、集成監(jiān)控與日志、集成共享存儲(chǔ)。
這是在阿里云上部署一個(gè)nginx應(yīng)用的一個(gè)例子,這是用的3.0的模板,用Engine來部署,它可以通過8080端口來訪問到。
圖4 負(fù)載均衡案例
自動(dòng)擴(kuò)容的事例,簡單來說,你只要聲明一下,當(dāng)CPU超過70%了就擴(kuò)展出兩個(gè)容器來,我們的做法是通過監(jiān)控平臺(tái)把數(shù)據(jù)收集上去,之后,如果當(dāng)它超過了70%的時(shí)候會(huì)調(diào)用集群管理的API,給它擴(kuò)出容器來,同時(shí)會(huì)把負(fù)載均衡的后端再掛到新的容器上,這樣就實(shí)現(xiàn)了自動(dòng)擴(kuò)容。
圖5 自動(dòng)擴(kuò)容案例
聲明式自動(dòng)擴(kuò)容
1.aliyun.auto_scaling.max_cpu: 70