NKD 是 NestOS-kubernetes-Deployer 的縮寫,是為了基于 NestOS 部署的 Kubernetes 集群運(yùn)維工作準(zhǔn)備的解決方案。其目標(biāo)是在集群外提供對集群基礎(chǔ)設(shè)施(包括操作系統(tǒng)和 Kubernetes 基礎(chǔ)組件)的部署、更新和配置管理等服務(wù)。
1. 引言
Kubernetes 作為云原生領(lǐng)域容器云場景的事實(shí)標(biāo)準(zhǔn),以其卓越的功能和靈活性,極大地簡化了容器化應(yīng)用程序的部署和管理。容器技術(shù)封裝所需運(yùn)行環(huán)境,實(shí)現(xiàn)與底層操作系統(tǒng)的解耦,而 Kubernetes 更進(jìn)一步實(shí)現(xiàn)了與底層運(yùn)行節(jié)點(diǎn)的解耦,使得應(yīng)用在不同云提供商和環(huán)境中無縫部署。
然而,這種解耦也帶來了新的挑戰(zhàn)。隨著 Kubernetes 的廣泛應(yīng)用,運(yùn)維復(fù)雜性逐漸凸顯。維護(hù) Kubernetes 集群需要大量技術(shù)和資源,運(yùn)維人員必須熟悉復(fù)雜的 Kubernetes 配置和管理,以保證集群的穩(wěn)定運(yùn)行。
為解決這一問題,運(yùn)維人員主要將精力投入到集群本身的運(yùn)維管理中,對于底層操作系統(tǒng)和 Kubernetes 基礎(chǔ)組件持保守態(tài)度,避免頻繁更新。然而,考慮到安全更新和 Kubernetes 新版本特性的支持,底層基礎(chǔ)設(shè)施組件的更新勢在必行。因此,需要一種解決方案來簡化底層基礎(chǔ)設(shè)施的運(yùn)維工作,使運(yùn)維更輕松地管理和更新集群的基礎(chǔ)設(shè)施。
2. NestOS 云底座操作系統(tǒng)
NestOS 是一款在 openEuler 社區(qū) CloudNative sig 組孵化的云底座操作系統(tǒng),專注于提供大規(guī)模集群部署環(huán)境下最佳的容器主機(jī)。
傳統(tǒng)上,使用通用操作系統(tǒng)作為集群基礎(chǔ)設(shè)施時,采用類似 Red Hat Satellite 或 SUSE Manager 等企業(yè)級系統(tǒng)管理平臺是一個較為理想的解決方案。這些平臺提供軟件包管理、配置管理、補(bǔ)丁更新等功能,便于對大規(guī)模集群進(jìn)行運(yùn)維。然而,在對操作系統(tǒng)進(jìn)行升級和管理的過程中,可能會遇到網(wǎng)絡(luò)或電源等異常情況,導(dǎo)致部分節(jié)點(diǎn)處于不穩(wěn)定的中間態(tài)。此外,這些平臺僅限于支持其本身所覆蓋的管理范圍,對于集群中存在運(yùn)維人員臨時維護(hù)或開發(fā)人員臨時調(diào)試導(dǎo)致的環(huán)境不一致,可能無法及時發(fā)現(xiàn)和修正。
為解決這些問題,NestOS 采用基于 rpm-ostree 技術(shù)的操作系統(tǒng)封裝方案,實(shí)現(xiàn)原子化更新,避免中間狀態(tài)的存在,即使在升級過程中出現(xiàn)失敗也能快速回滾至上一個穩(wěn)定狀態(tài),保證系統(tǒng)的穩(wěn)定性。在日常運(yùn)行中,NestOS 采取安全措施保證系統(tǒng)穩(wěn)定性,關(guān)鍵目錄設(shè)為只讀狀態(tài),核心系統(tǒng)文件和配置不會被意外修改,通過 ignition 機(jī)制導(dǎo)入和固化重要的系統(tǒng)配置,確保配置的持久性和一致性。這使得操作系統(tǒng)能夠始終保持預(yù)期的狀態(tài),減少意外錯誤。
NestOS 的核心思想類似于容器技術(shù)中的鏡像,旨在為操作系統(tǒng)層面打造不可變基礎(chǔ)設(shè)施。在部署時凍結(jié)了操作系統(tǒng)版本和配置,使其成為一個不可變的實(shí)體。這種做法有助于消除操作系統(tǒng)變體,確?;A(chǔ)組件版本與配置的一致性,從而提供了一個穩(wěn)定可靠的基礎(chǔ)設(shè)施環(huán)境。在集群中使用 NestOS 可以帶來更高的一致性和可靠性,簡化和高效地管理和維護(hù)操作系統(tǒng)。
可變基礎(chǔ)設(shè)施 vs 不可變基礎(chǔ)設(shè)施
然而,引入 NestOS 在原理上簡化集群運(yùn)維工作的同時,也在實(shí)際落地中帶來了一些新的挑戰(zhàn)。例如,NestOS 作為一種新的操作系統(tǒng)形態(tài)需要運(yùn)維人員熟悉理解其核心思想,接受任何改動均需在 CICD 流水線上重新構(gòu)建系統(tǒng)鏡像而不是登入系統(tǒng)操作、操作系統(tǒng)變更需重新引導(dǎo)等與通用操作系統(tǒng)迥然不同的使用習(xí)慣,以便有效地管理和維護(hù)。此外,NestOS 與傳統(tǒng)操作系統(tǒng)存在差異,需要適應(yīng)新的工具和技術(shù),具體有如下幾個方面:
「系統(tǒng)鏡像構(gòu)建工具鏈」:NestOS 一切業(yè)務(wù)相關(guān)的組件及配置變更均需重新構(gòu)建新版系統(tǒng)鏡像,因此提供 NestOS-Assembler 編譯工具鏈,可以完成從構(gòu)建配置到多種系統(tǒng)鏡像格式的生成,同時提供自動化測試工具,驗(yàn)證鏡像基礎(chǔ)組件可靠性。
「環(huán)境相關(guān)動態(tài)配置文件」:NestOS 通過 ignition 機(jī)制在部署階段將與環(huán)境相關(guān)的動態(tài)配置(例如登錄憑據(jù)、網(wǎng)絡(luò)、外掛存儲等信息)注入,因此需要運(yùn)維人員提前編寫配置文件,并通過 NestOS 提供的工具轉(zhuǎn)化為機(jī)器可讀的 ign 文件,供操作系統(tǒng)部署時使用。
「系統(tǒng)鏡像更新源」:NestOS 支持通過 rpm-ostree 直接下載當(dāng)前版本樹的最新版本,但需要運(yùn)維人員對系統(tǒng)鏡像更新源進(jìn)行維護(hù)管理,相應(yīng)也需要學(xué)習(xí)對應(yīng)的部署工具。也可以通過容器鏡像的形式分發(fā)新版本系統(tǒng)鏡像,復(fù)用現(xiàn)有 CICD 資源,但將無法應(yīng)用增量更新方式,每次更新均需下載完整系統(tǒng)鏡像。
「系統(tǒng)更新升級管理」:上述工具為系統(tǒng)更新做好了準(zhǔn)備,但沒有解決何時可進(jìn)行系統(tǒng)升級的問題。NestOS 雖提供了 zincati 組件實(shí)現(xiàn)基本的更新策略管理,但最佳實(shí)踐仍應(yīng)當(dāng)為結(jié)合操作系統(tǒng)當(dāng)前運(yùn)行業(yè)務(wù)狀態(tài),在業(yè)務(wù)允許的時間窗口對節(jié)點(diǎn)執(zhí)行更新維護(hù)操作。對于容器云場景,NestOS 提供基于 operator 機(jī)制實(shí)現(xiàn)的 housekeeper 服務(wù),在對節(jié)點(diǎn)上運(yùn)行的容器業(yè)務(wù)進(jìn)行驅(qū)逐后再行升級,用戶也可基于此制定更為復(fù)雜的升級維護(hù)策略。
接納操作系統(tǒng)使用的新方式需要成熟案例與時間積淀,但引入的運(yùn)維挑戰(zhàn)可以通過方便的運(yùn)維工具去解決。在這一背景下,NestOS-kubernetes-Deployer 應(yīng)運(yùn)而生,旨在提供集群外的部署、更新和配置管理等服務(wù),為運(yùn)維人員提升 NestOS 運(yùn)維體驗(yàn)。
3. NKD 對容器云運(yùn)維場景的助力
NKD 是面向 kubernetes 集群場景的解決方案,主要簡化集群部署和升級流程,具體如下:
「集群基礎(chǔ)設(shè)施創(chuàng)建」:NKD 根據(jù)集群需求,連接基礎(chǔ)設(shè)施提供商動態(tài)創(chuàng)建所需的 IaaS 資源,支持裸金屬和虛擬化場景,目前優(yōu)先實(shí)現(xiàn) openstack 場景。
「操作系統(tǒng)鏡像構(gòu)建」:NestOS 提供完善的鏡像構(gòu)建工具鏈,可以輕松集成到用戶現(xiàn)有 CICD 流程中,便于根據(jù) openEuler 官方或用戶自定義軟件源快速構(gòu)建定制鏡像。NKD 目前獲取鏡像構(gòu)建結(jié)果,并將相應(yīng)更新源配置應(yīng)用到集群中,未來將支持 NKD 配置托管鏡像構(gòu)建流程。
「動態(tài)配置注入」:在部署 NestOS 系統(tǒng)時,需要通過 ignition 點(diǎn)火機(jī)制傳入系統(tǒng)部署后所需的動態(tài)配置。NKD 目前提供工具形式,支持通過命令行參數(shù)或配置文件將用戶配置轉(zhuǎn)換為 ign 點(diǎn)火文件。最終目標(biāo)是提供用戶友好的前端配置界面,便于輕松生成所需配置,并提供配置變更版本管理功能。
「kubernetes 集群部署」:這也是 NKD 的核心能力,將 k8s 集群部署所需配置自動合并到用戶配置生成的 ign 文件中,使得節(jié)點(diǎn)在部署完成操作系統(tǒng)引導(dǎo)后自動開始創(chuàng)建 k8s 集群,無需手動干預(yù)。
「集群狀態(tài)檢測與 housekeeper 部署」:NKD 持續(xù)檢測 k8s 集群狀態(tài),一旦集群創(chuàng)建完成,向用戶提供訪問憑據(jù),并部署 housekeeper 自定義資源,用于后續(xù)維護(hù)升級功能。用戶可選擇默認(rèn)不部署該 CRD。
「操作系統(tǒng)或 k8s 基礎(chǔ)組件升級維護(hù)」:當(dāng)操作系統(tǒng)或 k8s 基礎(chǔ)組件需要升級維護(hù)時,NKD 使用鏡像構(gòu)建工具重新構(gòu)建新版系統(tǒng)鏡像,并在查詢到新版鏡像后,向集群創(chuàng)建 housekeeper CR 資源。集群中的 housekeeper 服務(wù)按照配置逐次對集群節(jié)點(diǎn)進(jìn)行升級,完成整個集群的升級工作。
通過以上整體方案,用戶可只通過 NKD 一鍵式完成集群創(chuàng)建和后續(xù)更新工作,而無需手動進(jìn)行繁瑣步驟,簡化運(yùn)維步驟。接下來我們對 NKD 架構(gòu)及未來規(guī)劃作一個簡要介紹。
4. NKD 完整規(guī)劃
NKD 整體架構(gòu)與集群交互全景
NKD 的整體架構(gòu)由多個組件構(gòu)成,主要包括 NKDS(NestOS-kubernetes-deployer-service)作為主體、部署到集群中的 HKO(housekeeper operator)以及集成在 NestOS 鏡像中的 installer。此外,還可以配合 NestOS 鏡像構(gòu)建工具鏈、配置管理倉庫(如 git)和私有化部署的容器鏡像倉庫,共同完成集群運(yùn)維任務(wù)。目前 NKDS 以命令行工具提供,暫不提供對外 http 接口和前端配置頁面,但主體功能所需的基礎(chǔ)設(shè)施管理、配置管理、系統(tǒng)鏡像管理、證書管理、健康檢測等模塊已初步形成。HKO 主要包括面向集群的 HKO 組件和集成在 NestOS 鏡像中的 HKD(housekeeper daemon)組件。目前 installer 組件負(fù)責(zé)在系統(tǒng)點(diǎn)火階段部署創(chuàng)建 K8S 集群,未來計劃將其功能融合到 HKD 組件中,使整體方案更加精簡,更易于用戶根據(jù)個性化需求管理所需的 K8S 基礎(chǔ)組件。
NKD 的最終目標(biāo)是以長期駐留服務(wù)形式提供運(yùn)維服務(wù),同時支持多個集群的管理。它將提供持久化配置變更記錄、證書管理、多種更新升級策略和鏡像源頻道等功能。未來,我們將持續(xù)優(yōu)化 NKD 的功能和性能,并引入更多智能化特性,如自動化故障處理和資源優(yōu)化等。我們的目標(biāo)是將 NKD 打造成 NestOS 生態(tài)中的核心組件,為云原生場景下的運(yùn)維工作提供全方位支持,進(jìn)一步推動云原生技術(shù)的發(fā)展和應(yīng)用。
5. 總結(jié)
NestOS 作為專為云原生場景設(shè)計的操作系統(tǒng),為容器云運(yùn)維帶來了巨大的助力,而 NKD 則是針對 NestOS 運(yùn)維中新引入的問題所提供的解決方案。通過持續(xù)優(yōu)化和創(chuàng)新,NKD 將使業(yè)界更易接受以 NestOS 為代表的不可變基礎(chǔ)設(shè)施,同時隨著 Kubernetes 社區(qū)的發(fā)展,更多創(chuàng)新解決方案將推動云原生技術(shù)向更成熟和可持續(xù)的未來發(fā)展。
審核編輯:湯梓紅
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7152瀏覽量
125597 -
容器
+關(guān)注
關(guān)注
0文章
511瀏覽量
22457 -
云原生
+關(guān)注
關(guān)注
0文章
261瀏覽量
8275 -
openEuler
+關(guān)注
關(guān)注
2文章
328瀏覽量
6342
原文標(biāo)題:NKD:容器云集群與 OS 一體化運(yùn)維利器
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄

淺析機(jī)電一體化的發(fā)展趨勢
Altium--機(jī)電一體化?
【云智易申請】一體化機(jī)柜監(jiān)控設(shè)計
普及從跑腿到云一體化IT運(yùn)維管理的常識
什么是機(jī)電一體化
機(jī)電一體化系統(tǒng)
如何實(shí)現(xiàn)機(jī)電一體化設(shè)計?
一體化伺服電機(jī)如何保存當(dāng)前參數(shù)
機(jī)電一體化綜合實(shí)訓(xùn)考核
Proteus是如何一體化安裝的
測控一體化閘門系統(tǒng)
H3CU-CENTER一體化運(yùn)維管理平臺的特點(diǎn)及功能應(yīng)用
光伏、儲能一體化監(jiān)控及運(yùn)維解決方案

水肥一體化設(shè)備運(yùn)維管理平臺有什么功能 ?

評論