云原生不可變基礎設施 - CoreOS
容器是對應用一次徹底的封裝,抽象成簡單標準的操作;應用的生產者使用build指令將應用打包成一個標準鏡像;然后使用push命令將鏡像推送到鏡像倉,即可完成應用標準發布;應用的使用者使用pull下載標準鏡像,然后使用run命令運行指定的環境,即可完成應用的快速部署。容器完美的解決了應用的標準化問題,但是多容器依然需要共享底層基礎操作系統,并沒有解決基礎操作系統自身的眾多問題。
1、什么是不可變基礎設施?
隨著現代化架構的應用系統建設,尤其是微服務架構大規模推廣,系統的規模跟復雜程度都在指數增長。從單臺的物理機,到虛擬化成幾臺服務器,再到現在幾十乃至上百個容器實例的規模,對于系統運維,傳統的手工方式已經無法勝任,必須通過全面推廣自動化來提升運維效率。
但是自動化面臨最大的阻礙就是管理對象的一致性問題,尤其是底層操作系統。Linux操作系統發行版本多,常用的rpm包在300~600左右靈活組合使用,面向大規模節點的批量部署、升級、安全漏洞管理都面臨巨大的挑戰。近幾年的Kubernetes集群大規模生產故障基本上都是由底層操作系統引發的。因此,基于容器的理念進一步標準化底層操作系統,實現基礎架構不可變,提升一致性,以此來應對當前容器大規模運維的挑戰。
什么是不可變基礎設施?CNCF不僅對云原生做了定義,同時有明確云原生的代表技術包括容器、服務網格(Service Mesh)、微服務、不可變基礎設施和聲明式API。其中不可變基礎設施是云原生的代表技術,同時也是一種思想理念。
2、不可變基礎設施的核心思想
不可變基礎設施的核心思想是任何基礎設施的實例一旦創建之后變成為只讀狀態,如需修改和升級,則使用新的實例進行替換??勺兊幕A設施人工干預較多,需要人工去操作系統里進行各種更改;不可變的基礎設施更偏向自動化,預先將基礎設施及其依賴都定義好,只需要去觸發新的變更就可以完成整體變更。
對于容器技術,當構建一個鏡像,然后在鏡像的基礎上去部署業務。如果出現問題,不會去已有容器的里去做變更,而是從容器構建階段去解決問題,重新打包構建新的鏡像。所以從容器的角度,鏡像就是一個不可變的基礎設施。
不可變的基礎設施逐漸下沉到操作系統層面,形成許多容器化操作系統,比如RancherOS、K3os、CoreOS等。容器操作系統多種多樣,但都有一個共同點就是底層基礎設施不可變。不管上層業務如何變化,底層操作系統都是作為一個整體去發布,而不是大量rpm包隨意組合去發布,最簡單的例子就是Android手機操作系統,一個ROM是一個完整的版本,所謂不可變,并不是說它不變,而是說操作系統在打包的時候,把所有內核及rpm包都規范化,作為一個整體進行升級,回滾和運維。
3、Container OS 容器操作系統
基于容器理念重新構建操作系統。首先,基礎架構不可變,提升一致性,將操作系統中各種非核心的功能全部剝離出來,比如說日志,監控,還有很多其他一些工具,按需以容器的形式調度運行,即run everything in container;其次,使用容器來運行各種組件和workload,將底層核心功能的最大程度的標準化,通過配置文件提供一定的自定義能力。滿足這兩個最基本的特性,基本上就實現了基礎設施不可變。如圖下圖所示幾個比較知名的容器操作系統:
4、Core OS及優勢
幾乎所有的公有云廠商也快速跟進,可謂百花齊放百家爭鳴。2015年,紅帽提出Atomic原子操作系統,希望解決容器運行環境問題,簡化底層操作系統的管理工作量。2018年,通過收購合并CoreOS,統一了開源社區標準,CoreOS與Atomic合并形成RHCOS。Atomic的優勢是對各個硬件廠商驅動的良好兼容性,CoreOS的優勢是與Kubernetes集成,比如ignition點火安裝方式,基于etcd做多集群管理;Atomic和CoreOS的融合,基本上建立了一個在容器操作系統領域事實的標準,構建一個具備一致性、自維護、鏡像不可變、一鍵升級、一鍵倒回的特性容器操作系統,簡化底層基礎架構復雜性。
5、總結
在開源領域,紅帽能勝出最大的原因是Linux內核,硬件支持,開源項目的整合能力,開源生態和盈利的平衡。
對CoreOS容器操作系統,有企業發行版RH CoreOS,還有社區發行版Fedora CoreOS,社區發行版內核更新比較快,基本上跟Fedora linux內核保持一致。
RH CoreOS發行版的內核與RH Linux內核保持一致,基本上等社區版運行用戶反饋穩定,完成QA測試,才會進行發布。所以企業版比社區發行部相對更慢,功能更少,但是會更加穩定且有廠家技術支持。涉及到CoreOS功能及驗證基本上都是基于RH CoreOS的最新版。
同時,CoreOS繼承RHEL8內核新特性,諸如reflink功能(節省磁盤空間, cow機制)、eBPF、XDP(網絡加速)、CGROUPV2(實現更好的資源限制與隔離)、nft(更強大的防火墻工具)等新特性都可以直接使用。
本文轉載自微信公眾號「巨子嘉」,可以通過以下二維碼關注。轉載本文請聯系巨子嘉公眾號。