ContainerOS是為容器情境垂直最佳化的阿里雲官方作業系統,完全相容現有的Kubernetes生態。在Alibaba Cloud Linux 3的基礎上,ContainerOS提供更高的安全性、更快的啟動速度和極為精簡的系統服務與軟體包,預設整合雲原生組件,開箱即用。本文介紹ContainerOS的適用範圍、基本資料、特性、優勢以及安全記事等。
適用範圍
ContainerOS介紹
在雲原生快速發展的大背景下,應用被容器化部署。使用雲原生組件(容器運行時、Kubernetes),您可以聚焦於應用的開發,無需過多關注底層基礎設施的細節。為了適應更多的使用情境,傳統的作業系統OS發行版包含大量的使用者態工具、軟體包、系統服務等,使得OS臃腫、啟動慢,各種軟體包種類繁多、版本零散,給營運人員帶來了極大的挑戰。為瞭解決傳統OS在雲原生情境下的各種適配問題,給Container Service的使用者帶來更好的使用體驗,為容器情境而生的作業系統ContainerOS應運而生。
相較於傳統的作業系統,ContainerOS更為輕量級和模組化,啟動和運行容器的速度更快。此外,ContainerOS通常具有更強的安全性和更少的資源需求,這使得它成為雲端運算和大規模部署的理想選擇,為Container Service的使用者帶來更好的使用體驗。
功能特性
特性 | 說明 |
鏡像精簡 | 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與Container ServiceACK管控配合,可持續更新Kubernetes和其它系統軟體版本、修複CVE漏洞,提升OS的可營運能力,支援鏡像按需發布。相較於同樣使用預置鏡像以提升節點啟動速度的Alibaba Cloud Linux 2自訂鏡像方案,ContainerOS提供官方維護和CVE保障,免除了您對自訂OS鏡像的維護、升級和重大問題的修複工作,有效降低您在使用過程中的工作量。 同時,通過與Container ServiceACK聯合最佳化,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鏡像發布的更多資訊,請參見作業系統鏡像發布記錄。