helm部署mysql


如果您的kubernetes已有了helm,那么部署mysql的步驟可以進一步簡化,那些原先需要自己動手配置的deployment和service都已集成在chart中,今天就來實戰通過helm部署mysql,並且將之前遇到的問題拋出來給大家參考;

環境信息

  1. 硬件:三台CentOS 7.7服務器
  2. kubernetes:1.15
  3. helm:2.16.1
  4. mysql:

關於helm

kubernetes環境helm的部署和基本操作請參考《》

下載chart包

  • 執行helm search mysql看看chart倉庫有沒有mysql,如下圖,紅框中就是我們需要的chart:
    在這里插入圖片描述
  • 執行helm fetch stable/mysql,會在當前目錄生成文件mysql-0.3.5.tgz
  • 執行tar -zxvf mysql-0.3.5.tgz,解壓后生成文件夾mysql
  • 進入mysql文件夾,打開values.yaml文件,按需要進行設置
  • 如下圖所示,紅框1可以選擇mysql鏡像的TAG,紅框2來設置root賬號的密碼,注意密碼的字符串要加雙引號:
    在這里插入圖片描述
  • 下圖紅框1是對存儲卷容量的需求,,紅框2是內存需求,紅框3是CPU需求,請按照實際情況調整:
    在這里插入圖片描述
  • 如果您想對mysql做更多配置,就涉及到配置文件mysql.cnf,依然是在values.xml中配置,如下圖紅框所示,這里設置的是字符集:
    在這里插入圖片描述
  • 下圖紅框中是Service的設置,可見默認類型是CluesterIP,這個類型無法在外部訪問,需要做修改:
    在這里插入圖片描述
  • 修改后的Service配置如下圖紅框所示,類型改成了NodePort,外部端口是32000:
    在這里插入圖片描述
  • 創建名為test001的namespace:
kubectl create namespace test001
  • 接下來要配置的是msyql數據的存儲,我們分兩種情況實踐來討論;

使用本機數據卷

  • 如果您是在單機上部署kubernetes,那么msyql數據存儲在宿主機是最簡單的方案
  • 在宿主機創建一個文件夾,例如/root/k8s-mysql-data,給此文件夾讀寫權限
  • 進入templates目錄,打開deployment.yaml,在文件的最末尾可以看到存儲的配置,如下圖紅框所示:
    在這里插入圖片描述
  • 上圖紅框中的內容,修改后如下圖紅框所示,名為data的數據卷是個本地文件夾:
    在這里插入圖片描述
  • 至此,配置完畢,下面一節是關於網絡數據卷配置的,您要是用了本地存儲可以跳過下一節"使用網絡存儲",進入部署msyql的階段。

使用網絡存儲

如果您的kubernetes是集群環境,推薦使用NFS作為MySql的數據存儲卷,具體操作如下:

  • NFS的server端,在/etc/exports文件上配置MySql用的NFS文件夾時,其屬性要用no_root_squash,如下圖紅框所示,不這么設置會在MySql啟動時出現文件夾權限問題:
    在這里插入圖片描述
  • 上述配置完成后,執行命令exportfs -arv使配置生效
  • 接下來准備PV,創建文件pv-mysql.yaml,內容如下,192.168.133.142時NFS的server地址,/usr/local/work/mysql是剛才設置的屬性為no_root_squash的NFS文件夾:
apiVersion: v1
kind: PersistentVolume
metadata:
 name: mysql
 namespace: test001
spec:
 capacity:
   storage: 10Gi
 accessModes:
 - ReadWriteOnce
 persistentVolumeReclaimPolicy: Recycle
 nfs:
   path: /usr/local/work/mysql
   server: 192.168.133.142
  • 執行以下命令創建PV:
kubectl create -f pv-mysql.yaml
  • 檢查PV是否創建成功:
    在這里插入圖片描述
  • 存儲准備完畢,可以開始部署MySql了

部署mysql

  • 在values.yaml所在目錄,執行以下操作即可部署mysql,使用的namespace是test001:
helm install --name-template mysql -f values.yaml . --namespace test001
  • 檢查pod創建是否成功:
    在這里插入圖片描述
  • 檢查service是否正常:
    在這里插入圖片描述
  • 至此,MySql部署成功,使用了宿主機的32000端口,接下來遠程連接到此MySql試試;

驗證mysql

在另外一台電腦上遠程連接MySql服務,我這里是在一台Ubuntu上用mycli工具連接的,MySql宿主機IP地址是192.168.133.149,端口是32000,密碼123456,連接和驗證操作如下圖所示:
在這里插入圖片描述

https://github.com/zq2599/blog_demos


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM