ContainerOS是為容器場景垂直優化的阿里云官方操作系統,完全兼容現有的Kubernetes生態。在Alibaba Cloud Linux 3的基礎上,ContainerOS提供更高的安全性、更快的啟動速度和極為精簡的系統服務與軟件包,默認集成云原生組件,開箱即用。本文介紹ContainerOS的適用范圍、基本信息、特性、優勢以及安全說明等。
適用范圍
ContainerOS介紹
在云原生快速發展的大背景下,應用被容器化部署。使用云原生組件(容器運行時、Kubernetes),您可以聚焦于應用的開發,無需過多關注底層基礎設施的細節。為了適應更多的使用場景,傳統的操作系統OS發行版包含大量的用戶態工具、軟件包、系統服務等,使得OS臃腫、啟動慢,各種軟件包種類繁多、版本零散,給運維人員帶來了極大的挑戰。為了解決傳統OS在云原生場景下的各種適配問題,給容器服務的用戶帶來更好的使用體驗,為容器場景而生的操作系統ContainerOS應運而生。
相較于傳統的操作系統,ContainerOS更為輕量級和模塊化,啟動和運行容器的速度更快。此外,ContainerOS通常具有更強的安全性和更少的資源需求,這使得它成為云計算和大規模部署的理想選擇,為容器服務的用戶帶來更好的使用體驗。
功能特性
特性 | 說明 |
鏡像精簡 | ContainerOS只包含Kubernetes Pod運行所依賴的軟件包和系統服務,通過全系統整合優化,可大大縮短系統啟動時間。ContainerOS的系統軟件包數量約為200個;而傳統操作系統(例如Alibaba Cloud Linux3、Alibaba Cloud Linux 2、CentOS等)默認預裝的軟件包數量約為600個。
此外,ContainerOS不提供Python支持,也不直接提供SSH登錄功能。您可以專注于業務的開發和運行,無需關心操作系統層面的問題。 |
極速啟動 | ContainerOS通過全鏈路整合優化,極大提高了OS啟動速度,降低了ACK鏈路中的節點擴容時間。通過簡化OS啟動流程,預置集群管控必備組件的容器鏡像以減少節點啟動過程中因鏡像拉取而帶來的耗時,并結合ACK管控鏈路優化,極大地提高了節點擴容速度。 以下圖為例,ContainerOS千節點擴容P90節點就緒時間僅為53s。相較于CentOS、Alibaba Cloud Linux 2自定義鏡像優化方案,ContainerOS優勢更為明顯。更多信息,請參見使用ContainerOS實現節點極速擴容。 重要 本示例中提供的數據僅為理論值,實際數據可能會因產品功能優化略有偏差,請以您的操作環境為準。 |
安全加固 | ContainerOS根文件系統為只讀權限,僅/etc和/var目錄可寫,以滿足基礎的系統配置需求。這種設計既符合云原生場景下的基礎設施不可變原則,又能防止逃逸容器篡改主機文件系統。同時,ContainerOS禁止用戶直接登錄到系統中進行一系列可能無法追溯的操作,但仍然提供一個專用的運維容器滿足非日常的運維需求。關于運維容器使用方法,請參見ContainerOS運維容器使用指導。 |
原子升級 | ContainerOS遵循云原生不可變基礎設施原則,不提供yum包管理工具,支持以整個操作系統鏡像為粒度的更新和回滾(替盤升級)與受限的分層熱升級能力,最大程度保證集群內各個節點的軟件包版本與系統配置的一致性。每個鏡像經過內部嚴格的測試之后才會上線,相較于傳統操作系統基于單個RPM包的升級帶來的不確定性,鏡像粒度的測試發布更能保證升級后系統的穩定性。 |
功能優勢
優勢 | 說明 |
容器場景垂直優化 | 針對容器場景垂直優化,具有啟動快、安全加固、根文件系統不可變等特征。ContainerOS既提升了性能,又方便集群范圍的運維與管理,最大程度上保持集群內各個節點的一致性。 |
節點極速擴容 | 通過結合ACK管控鏈路優化與OS內部優化,ContainerOS極大地提高了節點擴容的速度。目前,節點擴容速度在ACK節點自動伸縮e2e耗時中占比超過90%。使用ContainerOS后,您在節點池上的自動伸縮e2e體驗將得到大幅改善。 |
OS可運維能力 | ContainerOS與容器服務ACK管控配合,可持續更新Kubernetes和其它系統軟件版本、修復CVE漏洞,提升OS的可運維能力,支持鏡像按需發布。相較于同樣使用預置鏡像以提升節點啟動速度的Alibaba Cloud Linux 2自定義鏡像方案,ContainerOS提供官方維護和CVE保障,免除了您對自定義OS鏡像的維護、升級和重大問題的修復工作,有效降低您在使用過程中的工作量。 同時,通過與容器服務ACK聯合優化,ContainerOS可大大縮短Kubernetes節點因為運維導致的不可用時間,有利于業務的平穩運行。 |
Alibaba Cloud Linux 3兼容 | ContainerOS內核版本以及絕大部分軟件包與Alibaba Cloud Linux 3完全保持一致,采用最新的kernel 5.10 LTS,為云上應用程序環境提供Linux社區的最新操作系統功能。關于Alibaba Cloud Linux 3的更多信息,請參見什么是Alibaba Cloud Linux。 |
安全說明
ContainerOS應用如下設計原則來增強其安全性。
操作系統安全性
最小化執行環境
ContainerOS中僅包含容器場景所需的軟件包與系統服務,軟件包數量約210+。更少數量的軟件包意味著更少的CVE數量,減少操作系統自身的攻擊面。剔除高CVE軟件包,如binutils、Python、openssh、tcpdump等,ContainerOS盡可能縮減腳本語言執行環境,不支持Python、Perl、Ruby腳本執行。
不可變根文件系統
不支持yum等包管理軟件,僅支持使用rpm-ostree進行可追溯的OS變更與回滾。根文件系統/
與核心目錄/usr
(存放二進制與動態庫的目錄)為只讀,保留/etc
(動態配置目錄)與/var
(日志記錄與容器鏡像存放目錄)為可寫狀態。
具體的文件系統中的路徑及其屬性和建議用法如下:
路徑 | 屬性 | 用途 |
| 只讀 可執行 | 根文件系統 |
| 可寫 有狀態 | 通常包含系統的配置文件(如:自定義的systemd服務文件、對一些軟件的個性化配置等),用戶在升級系統后此目錄下自定義的配置文件會被保留。 |
| 可寫 有狀態 | 通常用于存儲一些組件在運行時需要創建的目錄(例如: |
| 可寫 有狀態 | 這些目錄都軟連接在 |
| 可寫 無狀態 | 掛載tmpfs,可用于存放系統運行所需臨時文件,重啟后數據會被清除。 |
實例訪問方式
ContainerOS未安裝OpenSSH軟件包,默認無sshd服務,無法直接SSH登錄。如需登錄實例,只能通過以下兩種方式:
按需拉取的運維容器:通過云助手下發命令啟動運維容器,并通過實例綁定的密鑰登錄,不支持密碼登錄。
通過阿里云會話管理免密登錄:會話管理客戶端與云助手服務端、云助手服務端與云助手Agent之間通信時,會通過WSS(Web Socket Secure)協議建立WebSocket長連接。WSS使用SSL(Secure Socket Layer)加密WebSocket長連接,能夠保障數據的安全。
基礎架構安全性
基于Alibaba Cloud Linux的軟件包體系
Alibaba Cloud Linux是阿里云打造的Linux服務器操作系統發行版,是阿里云上使用量占比第一的操作系統發行版。ContainerOS基于Alibaba Cloud Linux并基于云場景做了大量的優化,復用Alibaba Cloud Linux多年的軟件包與鏡像構建交付經驗,同時在鏡像發布前,執行OS基礎測試、ACK集成測試來保障鏡像的可用性與安全性。
持續漏洞掃描與修復
在ACK托管節點池中使用ContainerOS,可實現節點異常自動診斷和恢復、CVE漏洞自動修復功能,時刻保障節點的可用性與安全性。
計費說明
ContainerOS是免費鏡像。您可以在ACK節點池中免費使用ContainerOS鏡像,并免費獲得阿里云針對該操作系統的長期支持。
但當您使用ContainerOS鏡像時,涉及到的其他資源,例如vCPU、內存、存儲、公網帶寬和快照等需要收費。關于其他資源的計費詳情,請參見計費概述。
相關文檔
如何使用ContainerOS作為節點池操作系統,請參見使用ContainerOS。
ContainerOS對OS啟動速度、鏡像拉取時間等方面進行了優化,以提升ACK節點擴容速度和節點擴容體驗。詳細信息,請參見使用ContainerOS實現節點極速擴容。
關于ContainerOS運維容器的常見操作,例如進入主機環境,停止、重啟、銷毀運維容器狀態等,請參見ContainerOS運維容器使用指導。
關于ContainerOS鏡像發布的更多信息,請參見操作系統鏡像發布記錄。