helm部署mysql
如果您的kubernetes已有了helm,那麼部署mysql的步驟可以進一步簡化,那些原先需要自己動手配置的deployment和service都已整合在chart中,今天就來實戰透過helm部署mysql,並且將之前遇到的問題丟擲來給大家參考;
環境資訊
- 硬體:三臺CentOS 7.7伺服器
- kubernetes:1.15
- helm:2.16.1
- 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,連線和驗證操作如下圖所示:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2826380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- helm安裝mysqlMySql
- Helm Chart 部署 Redis 的完美指南Redis
- 部署和體驗Helm(2.16.1版本)
- helm部署traefik到k8sK8S
- helm包安裝部署相關命令
- Helm部署k8s應用K8S
- 使用 helm 部署 k8s 資源K8S
- apisix~helm方式的部署到k8sAPIK8S
- Helm, 在Kubernetes中部署應用的利器
- helm在k8s上部署Elasticsearch和KibanaK8SElasticsearch
- Helm
- 使用Karmada實現Helm應用的跨叢集部署
- Kubernetes雲原生儲存解決方案openebs部署實踐-3.10.0版本(helm部署)
- Kubernetes-基於Helm安裝部署高可用的RedisRedis
- helm學習
- helm upgrade
- docker部署MySQLDockerMySql
- helm安裝教程
- 通過helm部署EFK收集應用日誌,ingress-nginx日誌解析。應用日誌Nginx
- 部署MySQL步驟MySql
- Docker 部署 MySQL 5.7DockerMySql
- mysql多例項部署MySql
- MySQL MHA部署 Part 5 MHA部署指南MySql
- 從Helm2遷移到 Helm v3 的最佳實踐
- helm安裝及配置
- helm常用命令
- docker部署mysql叢集DockerMySql
- MySQL MHA部署實戰MySql
- MySQL多例項環境部署MySql
- mysql proxy 安裝部署MySql
- 部署mysql-8.0.35MySql
- 【Docker】使用docker部署 mysqlDockerMySql
- CnosDB 狂歡!全面支援 Helm 部署,輕鬆搞定你的分散式時序資料庫!分散式資料庫
- [kubernetes]helm安裝
- helm常用命令解析
- Helm命令在精不在多
- 使用 Bitnami Helm 安裝 KafkaKafka
- helm2安裝配置