CNCF Storage 使用者調查報告
本篇文章節錄自 CNCF End User Technology Radar 關於 Storage 的報告,擷取相關重點並加上個人心得來跟大家分享現在 CNCF 社群是怎麼選擇自己適合的 Storage 解決方案
本篇文章節錄自 CNCF End User Technology Radar 關於 Storage 的報告,擷取相關重點並加上個人心得來跟大家分享現在 CNCF 社群是怎麼選擇自己適合的 Storage 解決方案
本文開始又是嶄新的一篇,開始探討也是非常重要的儲存資源,儲存方面也有相關的標準再發展,其目的與 CRI 以及 CNI 一致,都是希望透過標準化接口能夠使得第三方的解決方案開發更加活絡且流暢,本文會開始來介紹儲存方面的基本概念以及為什麼需要 Container Storage Interface
本文針對 Container Storage Interface 的標準進行介紹,探討 CSI 本身標準涵蓋的範圍與流程,以及部署上的一些常見做法,包含多種服務器各自的角色與地位。
本篇文章著重於 Kubernetes 本身與 CSI 的關係,一直以來 kubernetes 甚至到 1.16 來說, CSI 都不是一個必需的設定,反而是依賴大量 in-tree 的整合程式碼來處理各式各樣的儲存後端,這雖然使用方便但是對於後續的擴充性,維護性,彈性都帶來的很大的危害。也因此 CSI 才有誕生的機會,所以對於長期使用 in-tree 的管理人員來說,勢必有一天要轉移到 CSI才有機會想到新的功能以及相關功能的修復
前述分享了關於不少 Container Storage Interface 的事情,接下來我們直接使用 NFS 作為範例,來看看要如何透過 CSI 的架構來掛載 NFS 到 kubernetes cluster 中供運算資源使用
本篇文章作為 Storage 的最後一塊,就沒有特別針對主題探討,反而是聊聊閒聊一些 Storage 方面的議題,順便聊聊 Mount 這個東西除了常見的功能之外,還有什麼參數可以使用,並且有什麼樣的效果。
Kubernetes 的架構中,對於 Network/Storage/Device/Container 都有高度的抽象化,透過這些抽象化讓 Kubernetes 能夠更專心的發展自身平台與介面,讓更多的廠商與第三方專案專心開發發展自己的特色並且透過共通介面與 Kubernetes 協同合作。於儲存系統方面,最廣為人知的就是 PersistentVolume(PV), PersistentVolumeClaim(PVC) 以及 StorageClass, 這三者到底在 Kubernetes 叢集中扮演什麼樣的角色,彼此如何互相合作以及彼此各自有什麼樣的限制與應用,都會在本文中跟大家詳細介紹,希望能夠透過這篇文章讓大家更瞭解 PV/PVC/SC 的概念
Network FileSystem(NFS) 是一個普遍常用且方便的檔案系統, Kubernetes 本身也有支援 NFS 的使用,然而 NFS 本身的諸多限制以及常見的用法要如何跟 Kubernetes 完美的整合,各種 ExportPath 以及對應的 UNIX 檔案權限,甚至是 Kubernetes 所提供的容量限制,存取模式限制等。本文會針對 NFS 常見的使用方式介紹使用,並且介紹上述等常見功能如果要與 Kubernetes 整合會遇到的各種問題。此外本文也會介紹如何透過第三方的專案來提供 StorageClass 此動態分配的方式與 NFS 結合,提供另外一種使用情境。
本篇文章作為 Container 介紹的最後一篇,簡單的透過 namespace 的操作讓大家看看 network 以及 storage 本身的運行模式,接下來到 CNI 以及 CSI 相關的章節的時候會再仔細介紹 kubernetes 中是怎麼處理 network 與 storage 這兩大重要資源。