程潤科
數(shù)據(jù)庫研發(fā)工程師,目前從事 RadonDB MySQL Kubernetes 研發(fā),熱衷于研究數(shù)據(jù)庫內(nèi)核、K8s 相關(guān)技術(shù)。
張莉梅
高級文檔工程師,目前負(fù)責(zé)數(shù)據(jù)庫產(chǎn)品文檔開發(fā)、維護(hù)和管理工作。
本文將演示如何在 KubeSphere[1] 上部署 RadonDB MySQL on Kubernetes 2.1.2,快速實(shí)現(xiàn)高可用的 MySQL on K8s。
部署準(zhǔn)備
- 確保已啟用 OpenPitrix 系統(tǒng)[2]
- 創(chuàng)建一個(gè)企業(yè)空間、一個(gè)項(xiàng)目和一個(gè)用戶供本操作使用[3]
- 安裝過程中,請以
admin身份登錄控制臺,在企業(yè)空間demo中的demo-project項(xiàng)目中進(jìn)行操作 - 確保 KubeSphere 項(xiàng)目網(wǎng)關(guān)已開啟外網(wǎng)訪問[4]
動手實(shí)驗(yàn)
1、添加應(yīng)用倉庫
- 登錄 KubeSphere 的 Web 控制臺。
- 在
demo企業(yè)空間中,進(jìn)入應(yīng)用管理下的應(yīng)用倉庫頁面,點(diǎn)擊添加,彈出倉庫配置對話框。 - 輸入倉庫名稱和倉庫 URL。
- 輸入
radondb-mysql-operator作為應(yīng)用倉庫名稱。 - 輸入
https://radondb.github.io/radondb-mysql-kubernetes/作為倉庫的 URL,并點(diǎn)擊驗(yàn)證以驗(yàn)證 URL,在 URL 旁邊呈現(xiàn)一個(gè)綠色的對號,驗(yàn)證通過后,點(diǎn)擊確定繼續(xù)。
- 輸入
- 將倉庫成功導(dǎo)入到 KubeSphere 之后,在列表中即可查看 RadonDB MySQL 倉庫。

2、部署 RadonDB MySQL Operator
- 在 demo-project 項(xiàng)目中,進(jìn)入應(yīng)用負(fù)載下的應(yīng)用頁面,點(diǎn)擊部署新應(yīng)用。
- 在對話框中,選擇來自應(yīng)用模板,進(jìn)入應(yīng)用模版頁面。
- 從下拉菜單中選擇 radondb-mysql-operator 應(yīng)用倉庫。
- 點(diǎn)擊 mysql-operator 應(yīng)用圖標(biāo),查看和配置應(yīng)用信息。

- 在配置文件選項(xiàng)卡,可查看和編輯 values.yaml 配置文件;在版本列框區(qū)域,可查看和選擇版本號。

- 點(diǎn)擊部署,進(jìn)入 mysql-operator 應(yīng)用基本信息配置頁面,確認(rèn)應(yīng)用名稱、應(yīng)用版本以及配置部署位置。
- 點(diǎn)擊下一步,進(jìn)入 mysql-operator 應(yīng)用配置頁面,確認(rèn) values.yaml 配置信息,可編輯文件修改配置。

- 點(diǎn)擊部署,返回應(yīng)用模版頁面。待應(yīng)用狀態(tài)切換為運(yùn)行中,則應(yīng)用部署成功。

更新 Operator
若已在 KubeSphere 部署過歷史版本 Operator,可以選擇如下方式更新到最新版本。
- 在 KubeSphere 平臺刪除歷史版本 Operator 應(yīng)用。

參考如上步驟,安裝最新版本 Operator 。
執(zhí)行如下命令更新 CRD 版本。如下示例為更新 CRD 到 2.1.2 版。
kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kubernetes/v2.1.2/charts/mysql-operator/crds/mysql.radondb.com_mysqlclusters.yaml
3、部署 RadonDB MySQL 集群
可任選一個(gè) RadonDB MySQL 配置示例[5] 部署,或自定義配置部署。
以 mysql_v1alpha1_mysqlcluster.yaml 模版為例,創(chuàng)建一個(gè) RadonDB MySQL 集群。
- 在右下角 工具箱中選擇 Kubectl 工具,打開終端窗口。
- 執(zhí)行以下命令,安裝 RadonDB MySQL 集群。
kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml --namespace=<project_name>
注意
未指定項(xiàng)目時(shí),集群將被默認(rèn)安裝在 kubesphere-controls-system 項(xiàng)目中。若需指定項(xiàng)目,安裝命令需添加 --namespace=<project_name>。
預(yù)期結(jié)果
$ kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml --namespace=demo-project
mysqlcluster.mysql.radondb.com/sample created
- 集群創(chuàng)建成果后,執(zhí)行如下命令,可查看 RadonDB MySQL 集群節(jié)點(diǎn)服務(wù)。
kubectl get statefulset,svc
預(yù)期結(jié)果
$ kubectl get statefulset,svc
NAME READY AGE
statefulset.apps/sample-mysql 3/3 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/default-http-backend ClusterIP 10.96.69.202 <none> 80/TCP 3h2m
service/sample-follower ClusterIP 10.96.9.162 <none> 3306/TCP 10m
service/sample-leader ClusterIP 10.96.255.188 <none> 3306/TCP 10m
service/sample-mysql ClusterIP None <none> 3306/TCP 10m
部署校驗(yàn)
在 demo-project 項(xiàng)目中,查看 RadonDB MySQL 集群狀態(tài)。
- 進(jìn)入 應(yīng)用負(fù)載 下的 服務(wù) 頁面,可查看集群服務(wù)信息。

- 進(jìn)入 應(yīng)用負(fù)載 下的 工作負(fù)載 頁面,點(diǎn)擊 有狀態(tài)副本集,可查看集群狀態(tài)。進(jìn)入一個(gè) 有狀態(tài)副本集 詳情頁面,點(diǎn)擊 監(jiān)控 標(biāo)簽頁,可查看一定時(shí)間范圍內(nèi)的集群指標(biāo)。

- 進(jìn)入 應(yīng)用負(fù)載 下的 容器組 頁面,可查看集群節(jié)點(diǎn)運(yùn)行狀態(tài)。

- 進(jìn)入 存儲 下的 存儲卷 頁面,可查看存儲卷。查看某個(gè)存儲卷用量信息,以其中一個(gè)數(shù)據(jù)節(jié)點(diǎn)為例,可以看到當(dāng)前存儲的存儲容量和剩余容量等監(jiān)控?cái)?shù)據(jù)。

至此,完成在 KubeSphere 中部署 RadonDB MySQL 集群。
參考引用
[1]:KubeSphere:https://kubesphere.com.cn
[2]:OpenPitrix:https://kubesphere.io/zh/docs/pluggable-components/app-store
[3]:創(chuàng)建操作:https://kubesphere.io/zh/docs/quick-start/create-workspace-and-project
[4]:項(xiàng)目網(wǎng)關(guān):https://kubesphere.io/zh/docs/project-administration/project-gateway
[5]:配置示例:https://github.com/radondb/radondb-mysql-kubernetes/blob/main/config/samples