MySQL 使用 PV 和 PVC - 每天5分鐘玩轉 Docker 容器技術(154)

jj1130050965發表於2020-12-07

MySQL 使用 PV 和 PVC - 每天5分鐘玩轉 Docker 容器技術(154)

原創 CloudMan CloudMan 2018-04-13

第154篇

MySQL 使用 PV 和 PVC

本節演示如何為 MySQL 資料庫提供持久化儲存,步驟為:

  1. 建立 PV 和 PVC。

  2. 部署 MySQL。

  3. 向 MySQL 新增資料。

  4. 模擬節點當機故障,Kubernetes 將 MySQL 自動遷移到其他節點。

  5. 驗證資料一致性。

首先建立 PV 和 PVC,配置如下:

mysql-pv.yml

mysql-pvc.yml

建立 mysql-pv 和 mysql-pvc

接下來部署 MySQL,配置檔案如下:

PVC mysql-pvc Bound 的 PV mysql-pv 將被 mount 到 MySQL 的資料目錄 var/lib/mysql

MySQL 被部署到 k8s-node2,下面通過客戶端訪問 Service mysql

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -ppassword

更新資料庫:

① 切換到資料庫 mysql。

② 建立資料庫表 my_id。

③ 插入一條資料。

④ 確認資料已經寫入。

關閉 k8s-node2,模擬節點當機故障。

一段時間後,Kubernetes 將 MySQL 遷移到 k8s-node1

驗證資料的一致性:

MySQL 服務恢復,資料也完好無損。

小結

本章我們討論了 Kubernetes 如何管理儲存資源。

emptyDir 和 hostPath 型別的 Volume 很方便,但可永續性不強,Kubernetes 支援多種外部儲存系統的 Volume。

PV 和 PVC 分離了管理員和普通使用者的職責,更適合生產環境。我們還學習瞭如何通過 StorageClass 實現更高效的動態供給。

最後,我們演示瞭如何在 MySQL 中使用 PersistentVolume 實現資料永續性。

 

書籍:

1.《每天5分鐘玩轉Kubernetes》
https://item.jd.com/26225745440.html(點選“閱讀原文”直達)

2.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html

3.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關文章