提到雲原生,就不得不提及「容器化」的技術,在第一篇開篇的文章中,就談到了Cloud Native Computing Foundation (CNCF)的定義中,「容器」是個雲原生的指標。
那麼,為什麼我們要使用容器呢?
答案是:為了「快速部署」、「標準化」、「輕量化」。
以容器技術而言,做到了在各個作業系統上都能統一部署的標準化,且每個容器共用硬體資源,極度輕量化,讓部署服務這件事情變得更加快速。好處就在於,我們再也不用為了部署一樣的服務環境而讓流程變的繁瑣,或者每次都要重新部署,在CICD上的流程也會變得更加簡潔。
但是有個問題是,儘管容器化了,卻還是要維護硬體資源,並且像是鏡像存儲也可能需要挑選一下適合的Registry,同時若要處理自動擴展的時候,也需要很多額外的第三方工具來做處理,在各項資源的整合性上沒有那麼好。所以該如何處理這樣的問題呢?
既然是雲原生的一環,那麼當然就是使用雲端上的容器囉!在阿里雲上,就提供了一個容器服務,名稱是「Elastic Container Instance」(ECI)。這樣的服務可以讓使用者快速搭建服務,並且不需要維運的時間與成本,同時也具備高可擴展性。筆者整理了ECI的一些特點:
全託管式服務Serverless:阿里雲協助託管底層伺服器,不需要擔心容量或者效能的部分。
多種規格選擇:可以選擇用ECI來做,或者指定某一台安裝GPU等特殊運算資源的ECS(阿里雲Virtual Machine)
鏡像快取:通過快取鏡像,來讓建立容器速度提升。
兼容K8S:除了之後會介紹的ACK、ASK兩個阿里的基礎服務外,也能夠兼容在地端上運行的K8S。透過Virtual Kubelet的技術,將ECI當成另一個K8S虛擬節點來使用。
資源整合:存儲Volume的部分可以結合阿里的NAS、Disk、OSS;鏡像(Image)的部分可以結合ACR來做使用;自動擴展可以搭配彈性伸縮服務。
而在整合上,筆者接下來也想跟各位分享一個阿里雲上的服務「Alibaba Cloud Container Registry」(ACR),就是用於管理鏡像存儲的服務。
我們都知道,只要談到容器,最重要的莫過於鏡像 (Image),正是透過鏡像,我們才能快速遷移、部署、調整服務。但是大部分的鏡像管理服務像是Docker Hub、Gitlab、Github,在權限管理上可能比較複雜,或者是難以一站式管理。因此想要在阿里雲上使用ECI並且提升效率,就一定不能錯過ACR這項服務。
ACR的特點是!
簡單易用:一鍵部署,不需要自己架設主機再安裝相關的鏡像倉儲軟體;同時與雲端上的其他服務有高整合度。
多個地區選擇:可以根據Workloads所在地選擇不同地區的ACR,加速拉取鏡像。
安全權限管理:提供不同層級的權限管理,協助使用者管理、共享鏡像。也能掃描鏡像確認是否有安全性漏洞。
在大概了解ECI的服務後,下一篇文章將會帶大家進入ECI的實際操作,就讓我們趕快到下一篇去吧!