【下一代核心技術DevOps】:(六)Rancher集中儲存及相關應用

元始天尊門下皮皮蝦發表於2017-12-14

1. 前言

為什麼要使用集中儲存? 使用集中儲存有個很大的優勢是資料安全和統一管理,和叢集完美配合。 產品整合儲存經歷過幾個階段:

  1.單機本機儲存。 系統使用本地硬碟儲存

  2.單網路集中儲存。 區域網主機使用同一網路內的磁碟陣列儲存單元

  3.分散式叢集本地儲存。 叢集節點使用自己本地硬碟儲存。

  4.分散式叢集集中儲存。叢集節點使用集中儲存(其背後可以是單一儲存也可以是分散式儲存,集中儲存相當於一個代理入口)

其中雲端計算用的最多的是 3,4 這幾個。主要適應於網路架構的分散式設計和基本雲端計算儲存,如多機房,多地儲存。使用集中儲存給運維帶來的最大

優勢就是核心資料儲存,不怕應用崩潰,各種docker容器都可以隨時拋棄,重建。不用擔心資料問題。

 

2. Rancher中使用集中儲存NFS

Rancher對Docker叢集的管理已經是非常方便,預設是沒有載入共享儲存的,我們這裡使用RancherNFS外掛來實現一個統一的儲存,

當然也可以選擇其他的外掛,目前官方只有這一個,其他非官方的如CephFS,FastDfs等請自行新增外掛或自寫外掛來實現。在此不做過多解讀

點選Rancher應用商店,搜尋nfs,找到官方外掛並新增

 填寫主機地址:IP

目錄: 建議不要填 / 而是指向NFS伺服器儲存的一個目錄

 ON_Remove: Purge: 刪除對映目錄時會刪除NFS遠端對應的資料  Retain:不刪除遠端資料

 點“啟動”即可 ,Rancher會在各個宿主機上面新增NFS驅動

 

 

 

   檢視NFS驅動,每個宿主機都已啟動完畢

 

 使用NFS:

 我們在新增服務的時候, 可以配置下卷  name:/容器對應目錄 

  填  logs:/opt/logs  會對應遠端NFS裡面 新建的 logs目錄

  如果填  /logs:/opt/logs  則是常用的卷對映,會寫入宿主機本地的/logs目錄

 驅動填寫預設的  rancher-nfs

 這樣 容器裡面讀寫的檔案就直接操作遠端Nfs伺服器了

 

 

 檢視效果: 

 啟動應用後,容器的日誌已經輸出到NFS裡面了。

 

 用途及注意事項:

 主要是針對日誌類的,可以統一做日誌蒐集。

 針對於資料持久化的,如MySQL資料  可以 通過對映 mysql/data:/var/lib/mysql  把資料集中儲存到NFS上

 注意:1. 集中儲存要考慮到同時讀寫的問題,即Lock。 有的程式無法同用一套資料,這時候要考慮到單獨讀寫或放到多個變數子目錄

             如MySQL無法同時起2個例項讀寫一套資料。

            2. NFS外掛還有不完善的地方, 如只能對映目錄,無法對映檔案 ,我們常用的 -v /nginx.conf:/nginx.conf 就無法使用了。

            3. 多NFS伺服器配置,無法從UI介面新增, 只能從YML檔案來處理。

            4. 集中儲存一定要考慮速度問題,畢竟網路傳輸沒有本地傳輸速度快,儘量選擇公有云/私有云網路是走光纖通道的。儘量不要跨地域傳輸,如深圳的使用上海的NFS伺服器

            5. 儘可能使用可靠性有保障的儲存,畢竟伺服器,容器神碼的都可以丟棄,資料是要絕對安全的。推薦阿里雲的NFS服務,可以保障9個9的安全性。

相關文章