左邊是CNCF推廣大使 太田航平,而右邊是CNCF技術監督委員會成員 Katie Gamanji,兩位來臺在K8s Summit中分享K8s未來三大發展方向

兩位蘋果工程師Katie Gamanji和太田航平(Kohei Ota),在今年Kubernetes Summit研討會第二天的主題演講中,回顧了K8s十年發展,並揭露了接下來三大發展方向。Katie Gamanji是CNCF技術監督委員會成員,她主導設立了雲原生證照KCNA認證制度和相關課程,而太田航平則是CNCF推廣大使,去年參與創立了日本雲原生社群,是日本開源社群的活躍者。

Katie Gamanji指出,K8s是傑出的容器調度框架,關鍵是透過宣告式配置和各種自動化機制,提供了很好的移植性和適應力,今年是K8s誕生十周年,超過8萬8千人參與貢獻,橫跨8千家企業,超過4,200萬次上傳。十年來發展出了很完整的雲原生技術版圖(Cloud Native LandScape)。

目前CNCF擁有190個開源專案,分布在三個不同成熟度的等級,127個處於創意解方嘗試階段的沙盒專案,37個開始有企業貢獻和採用的孵化專案,以及27個達到穩定和成熟,甚至成為業界標準的畢業專案。另外,還有些專案發展不如預期,會落入歸檔的專案,目前有9個。

太田航平指出,因為跨不同作業系統和雲端供應商,推動了CRI(容器Runtime介面)和CNI(容器網路介面)這兩類專案的蓬勃發展,可以針對特定雲端業者量身克制,提供更多彈性,也支援更多樣化的容器執行環境。隨著大規模應用和有態工作流程的需求,帶動了CSI(容器儲存介面)和服務網格技術的興起,可用於管理超級複雜的網路流量。

為了滿足多租戶架構,讓每個用戶可以有自己專屬的叢集,太田航平表示,K8s的叢集API成了關鍵標準化機制,可以將叢集的身分驗證功能,和底層的基礎設施脫離。透過叢集API,不論是本地端、公有雲或邊緣環境,都可以提供一致的K8s叢集建立和管理方式,也能建立一套涵蓋叢集生命周期的標準化管理方式。

未來K8s三大發展:WebAssembly、eBPF和永續性

K8s的下一波發展,太田航平指出有三大重要機制,第一項就是WebAssembly。為何這項技術對雲原生的發展,非常重要?太田航平解釋,WebAssembly可以提供一個獨立的環境,不受限於任何開發語言、作業系統和CPU。換句話說,WebAssembly等於是提供了一個可以通吃任何開發環境、作業系統,甚至是CPU架構的執行程式。WebAssembly也是一個二進位檔案,可以用不同的開發語言編譯成這種格式的檔案,再部署到瀏覽器或非瀏覽器的環境中執行。「WebAssembly提供了一個安全、輕便而且可以在任何地方執行的環境。

太田航平舉例說明如何用K8s開發者熟悉的GO語言、行動開發者慣用的Swift,甚至網頁開發者會用的Ruby語言,來編譯成WebAssembly的wasm格式檔,都可以很容易完成。也很容易用Docker來打包出一個可以執行WebAssembly二進位檔的容器映像檔。

eBPF應用越來越廣,從網路處理,擴大到資安監控和可觀察性

除了WebAssembly之外,第二個重要新發展是eBPF,這項技術原本只是一項用來過濾網路封包的技術,但現在的應用越來越多元,不只是網路處理,也擴大應用到資安監控和可觀察性工具上。

太田航平指出,eBPF的威力是,在同一套一致的安全模式下,提供了低負載的過濾機制以及核心等級的程式化能力,主要透過JIT即時編譯技術和執行前驗證機制來實現。由於eBPF的程式碼具有Linux核心等級的執行能力,因此採取許多預先驗證機制,也採取了一些預防runtime時期出現意外行為的機制,例如限制可用的系統呼叫。另外,還會隨時監控資料型別和存取模式,來避免程式碼非法存取記憶體。

目前,eBPF主要有三大應用場景,資安監控,網路路由和過濾,以及可觀察性中的矩陣數據搜集,都各有不少知名的開源專案。這三類應用都是雲原生環境運作需要的核心能力。例如像New Relic的Pixie可觀察性工具,就是用eBPF技術來取得K8s運作的矩陣數據。

為了確保安全,eBPF二進位檔會先載入到用戶空間,經過各種執行前驗證檢查後,才會把檔案放入到核心空間,再用JIT編譯器完成編譯後,才允許連結到系統呼叫。
最後一項K8s的新發展方向是永續性。

技術部門若不行動,未來技術碳排不減反而會大增

Katie Gamanji指出,根據調查,全球碳排放量有1.4%來自技術部門,如果將資料中心和資訊基礎架構改用再生能源來運作,可以減少80%的碳排,但是,目前技術部門的行動力不夠,導致技術部門未來十年產生碳排量,不但不會減少,反而預估還會增加了10%。

「如何讓技術部門可以觀察,紀錄和評估他們自己的碳排放,在雲原生環境中,需要新的工具來解決這個課題。」Katie Gamanji指出。這正是K8s接下來在永續性的發展方向。目前K8s有兩項重要的永續工具,第一個Kepler專案,可以用來追蹤K8s的能耗,另一個工具則是碳察覺KEDA工具,可以依據碳排量數據變化來調度的自動擴充機制。

Kepler利用了eBPF技術來探測K8s叢集在系統層級的能耗數據,再匯出到Prometheus中彙整,可以用Gafana來視覺化,這項專案是由IBM和紅帽在2022年發起,2023年捐給CNCF基金會,目前處於沙盒階段,意味著還是一項新興的創意嘗試解決專案,還沒有足夠多的企業案例,也很需要嘗試者來貢獻意見。Kepler可以追蹤到不同命名空間,甚至是每一個容器,每一天的碳排數據變化。若用命名空間來區分不同的應用,就可以找出碳排量特別高的應用系統。

不只追蹤碳排數據,還可依碳排密度自動調度K8s叢集

有了追蹤碳排數據的工具後,如何運用到K8s叢集的調度上,另一個關鍵工具就是具備碳察覺自動擴充操作器Carbon Aware KEDA Operator。KEDA(Kubernetes Event-driven Autoscaling)專案是一項K8s的自動擴充、縮小叢集規模工具,可以用事件驅動來觸發。碳察覺KEDA操作器則是可以讓KEDA工具,可以依據叢集外部的事件,來調整應用程式的規模,達到碳排放量調整的效果。

例如可以設計系統使用「碳排密度」指標來調整規模,碳排放量密度是一個新興的綠色IT指標,以每千瓦小時排放多少二氧化碳量來計算。可以在配置檔中,透過KEDA Scaler CRD或自定義資源設定,來定義不同碳排密度事件的層級,當密度高時,自動降低應用系統的副本數量,來達到減少碳排的效果。

Katie Gamanji表示,參與CNCF專案有很多種形式,不一定要貢獻程式碼,也可以參與白皮書制定,或加入工作小組。例如有不少中小企業參與了形形色色各種議題的技術諮詢小組,雲原生生態圈是一個隨著更多參與和互動,而不斷改變的環境,需要一個健康的社群來支持,社群也需要永續的發展。

熱門新聞

Advertisement