如何配置K8S儲存叢集?

portworx發表於2020-06-06


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儲存叢集中需要考慮的一些方面,希望對您有幫助。謝謝!

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950566/viewspace-2696641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章