如何配置K8S存儲集羣?

https://v.qq.com/x/page/q0976bknoii.html

歡迎回到Portworx系列講解視頻。我是Ryan Wallner。今天我們來介紹如何配置Portworx存儲集羣。這裏我們概要性的對Kubernetes和Portworx的結構進行介紹,如何在Kubernetes上配置Portworx集羣,以及正確安裝Portworx需要哪些命令和參數。這裏我們有一組已經配置好的高可用的Kubernetesmaster節點,一組worker節點,在這些節點上我們來安裝Portworx。

Portworx需要一些資源的支撐。每一個worker節點都需要有CPU,不論是本地裸金屬,還是雲端,至少需要4個核以上的CPU。根據工作負載的不同,也許會需要更多核的CPU,例如運行一組數據庫,4個核就不夠了。最少的情況下我們需要4個核。內存建議至少4G。

跟CPU的核數一樣,內存越大計算能力越強。可以根據自身的成本預算和負載的內存需求情況,來配置合適的資源供Kubernetes使用。但是運行Portworx,就需要滿足4核CPU和4G內存的最小要求。因爲Portworx是一個持久存儲和數據管理系統,因此需要磁盤和驅動做支撐。

磁盤需要至少8G,我們推薦128G。4個節點的話,8G顯得有點少。如果每個節點有128G,就能夠有一個不錯容量的存儲池,來支撐存儲系統。目前來看,還很少有爲節點配置1TB以上。還要看運行的應用和需要的情況來定。網絡方面,我們推薦10G的內部網絡互聯。

存在一個管理網絡和一個數據網絡。你可以把數據aka的複製、和應用的存儲IO分配到不同的網絡上。一個數據網絡會存在,我們標記爲D,還會存在一個管理網絡,我們標記爲M。因此管理網絡和數據網絡都可以通過網絡進行連接。這些使你可以把I/O和數據流量進行分配。我們接下來介紹一下如何配置,需要確保數據網絡至少是10G互聯的。管理網絡可以稍微低一些。Portworx的端口,需要9001到9021,這個範圍可以配置的,這是默認的配置範圍。除非有其他的端口衝突,就不要改變這些端口範圍,它們是默認的Portworx通訊的端口。

對於Kernel版本,你至少需要3.10爲Linux操作系統的版本,因爲我們使用了很多更新的Linux Kernel集成、工作流和數據流等功能。鍵值存儲數據庫,etcd是最常見的,以及HashiCorp的Consul也可以選用。是的,Kubernetes集羣在Master節點上運行etcd,注意鍵值數據庫完全是分開的。

我在這裏標記一下etcd,它通過網絡會被附加到Portworx上,並且是獨立的。它保存集羣信息,元數據這些。對於一些有一定規模的集羣,比如20或者25個節點的Portworx,我們推薦外部數據庫,鍵值存儲數據庫,因爲它會把I/O和CPU的資源放在外部系統上以及保持它們在獨立的錯誤域裏。

好的方法是保持一個獨立的錯誤域,並且在配置過程中保持存有備份和快照,這樣出現問題的時候可以恢復etcd數據庫。對Kubernetes etcd數據庫也可以這樣操作。我們來介紹這兩種方式。一種方式是有一個build-in的鍵值存儲,這意味着Portworx可以自動工作,不需要人工干預,可以自動進行快照,也可以備份和恢復,但這是在20~25個Portworx節點的情況。現在對於Portworx所需資源有了一個整體瞭解,我們在介紹如何來配置它。我首先需要來介紹一下-C option,我來展示一個例子,來看在Kubernetes部署中是什麼樣的,或者Portworx運行中的DaemonSet。這樣從命令行和EMO的角度我們就能更好的理解。

-C是我們的集羣名稱,你可以有其他的命名,但是不要有重複。因爲如果用同樣的名字,在應用分佈和在etcd中配置的過程中,可能會出現衝突。所以確保集羣名稱是不重複的,這非常重要。我們接下來介紹存儲,我們數據存儲的選項。這裏有一些,我們來看一下,你至少需要配置一項來定義你的存儲磁盤或者後端存儲,可以是本地的8G或者128G的磁盤驅動器,或者是雲端存儲驅動,例如SAN附加存儲。不論是什麼情況,-S都需要被使用,來指向一個特定的磁盤驅動:dev/sdb。你可以列出它們的名稱,或者通過一個卷模板來使用。現在我來連接到卷模板,這是在雲中來使用的,我想要使用gb2,有200G的卷,這會被認爲是一個模板。Portworx會自動的與雲的API進行溝通、部署、並且附加到Portworx worker節點上。

-Z是一個零存儲節點。使用的情況是,如果你想要Portworx節點來加入到Portworx集羣,也就是說着它需要附加\mount卷、並且允許應用具備I/O和使用卷。但是它不會給存儲集羣貢獻更多的存儲,也就是說它也不需要有磁盤。所以這就是-Z,零存儲節點。-A,可以提供我們需要的所有功能。如果Portworx需要查詢來看到底有多少沒有被mount的未被使用的磁盤驅動。你可以增加-F,表示可以強制使用任何有文件系統的磁盤驅動。

這些是典型的操作中使用的參數。我們再來介紹一下數據網絡和管理網絡。配置時爲數據網絡使用-D,爲管理網絡使用-M。eth0,eth1這些。另外還有一個比較重要的就是 -X,這是你的調度器。“請告訴我的Kubernetes調度器來做更多的工作”。

我們介紹了STORK,有一個單獨的視頻介紹STORK,它是Kubernetes的存儲調度器,與Kubernetes的調度器緊密集成。鍵值存儲,會是IP和端口。通常運行在2379端口。也許是負載均衡器的IP地址,或者是etcd數據庫的虛擬IP地址。如果你不想要使用外部數據庫,你就不能使用 -b。-b表示使用內部的etcd數據庫,或者是鍵值存儲數據庫。Portworx會自動的用高可用方式部署鍵值。高可用鍵值存儲在至少3個節點上,並且配置壓縮存儲。如果低於20/25個節點,你可能就想使用-b,因爲不論你是否想保持對etcd集羣的感知,或者對集羣本身的感知,可以留給Portworx來自動完成。

還有一些其他的部分,如果你想要使用-b,你需要配置一個元數據標誌,表示這些是專門爲鍵值存儲數據庫發送元數據I/O使用的驅動,所以它與數據I/O是分開的磁盤。還有就是緩存設備,它允許你在這些節點上選擇最快的驅動。如果這些Portworx節點中的某一個使用GB2卷,在服務器上有一個NVMe或者一個io1類型的磁盤,就會比普通的驅動要快很多。

你可以使用它作爲緩存設備,被Portworx作爲緩存來使用。總結一下這些重要的標籤。- C是集羣名稱。-A可用來獲取磁盤。-Z代表零存儲節點。S代表確定的存儲,意味着磁盤模板或者存儲設備本身。-D表示數據網絡。-M表示管理網絡。-X代表調度器或者Swarm,或者Kubernetes。-K代表外部鍵值存儲。-b代表內部鍵值存儲數據庫、緩存設備、或者配置緩存設備/緩存元數據,供內部鍵值存儲使用。

另外還有一些,我在這裏就不再詳細敘述,我們有spec生成器,你可以通過central.portworx.com來訪問。你使用spec生成器的時候,它會用圖形界面指導你來選擇使用這些參數。以上我們介紹了在配置Portworx存儲集羣中需要考慮的一些方面,希望對您有幫助。謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章