程潤科
資料庫研發工程師,目前從事 RadonDB MySQL Kubernetes 研發,熱衷于研究資料庫內核、K8s 相關技術,
張莉梅
高級檔案工程師,目前負責資料庫產品檔案開發、維護和管理作業,
本文將演示如何在 KubeSphere[1] 上部署 RadonDB MySQL on Kubernetes 2.1.2,快速實作高可用的 MySQL on K8s,
部署準備
- 確保已啟用 OpenPitrix 系統[2]
- 創建一個企業空間、一個專案和一個用戶供本操作使用[3]
- 安裝程序中,請以
admin身份登錄控制臺,在企業空間demo中的demo-project專案中進行操作 - 確保 KubeSphere 專案網關已開啟外網訪問[4]
動手實驗
1、添加應用倉庫
- 登錄 KubeSphere 的 Web 控制臺,
- 在
demo企業空間中,進入應用管理下的應用倉庫頁面,點擊添加,彈出倉庫配置對話框, - 輸入倉庫名稱和倉庫 URL,
- 輸入
radondb-mysql-operator作為應用倉庫名稱, - 輸入
https://radondb.github.io/radondb-mysql-kubernetes/作為倉庫的 URL,并點擊驗證以驗證 URL,在 URL 旁邊呈現一個綠色的對號,驗證通過后,點擊確定繼續,
- 輸入
- 將倉庫成功匯入到 KubeSphere 之后,在串列中即可查看 RadonDB MySQL 倉庫,

2、部署 RadonDB MySQL Operator
- 在 demo-project 專案中,進入應用負載下的應用頁面,點擊部署新應用,
- 在對話框中,選擇來自應用模板,進入應用模版頁面,
- 從下拉選單中選擇 radondb-mysql-operator 應用倉庫,
- 點擊 mysql-operator 應用圖示,查看和配置應用資訊,

- 在組態檔選項卡,可查看和編輯 values.yaml 組態檔;在版本列框區域,可查看和選擇版本號,

- 點擊部署,進入 mysql-operator 應用基本資訊配置頁面,確認應用名稱、應用版本以及配置部署位置,
- 點擊下一步,進入 mysql-operator 應用配置頁面,確認 values.yaml 配置資訊,可編輯檔案修改配置,

- 點擊部署,回傳應用模版頁面,待應用狀態切換為運行中,則應用部署成功,

更新 Operator
若已在 KubeSphere 部署過歷史版本 Operator,可以選擇如下方式更新到最新版本,
- 在 KubeSphere 平臺洗掉歷史版本 Operator 應用,

-
參考如上步驟,安裝最新版本 Operator ,
-
執行如下命令更新 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 集群
可任選一個 RadonDB MySQL 配置示例[5] 部署,或自定義配置部署,
以 mysql_v1alpha1_mysqlcluster.yaml 模版為例,創建一個 RadonDB MySQL 集群,
- 在右下角 工具箱中選擇 Kubectl 工具,打開終端視窗,
- 執行以下命令,安裝 RadonDB MySQL 集群,
kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml --namespace=<project_name>
注意
未指定專案時,集群將被默認安裝在 kubesphere-controls-system 專案中,若需指定專案,安裝命令需添加 --namespace=<project_name>,
預期結果
$ 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
- 集群創建成果后,執行如下命令,可查看 RadonDB MySQL 集群節點服務,
kubectl get statefulset,svc
預期結果
$ 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
部署校驗
在 demo-project 專案中,查看 RadonDB MySQL 集群狀態,
- 進入 應用負載 下的 服務 頁面,可查看集群服務資訊,

- 進入 應用負載 下的 作業負載 頁面,點擊 有狀態副本集,可查看集群狀態,進入一個 有狀態副本集 詳情頁面,點擊 監控 標簽頁,可查看一定時間范圍內的集群指標,

- 進入 應用負載 下的 容器組 頁面,可查看集群節點運行狀態,

- 進入 存盤 下的 存盤卷 頁面,可查看存盤卷,查看某個存盤卷用量資訊,以其中一個資料節點為例,可以看到當前存盤的存盤容量和剩余容量等監控資料,

至此,完成在 KubeSphere 中部署 RadonDB MySQL 集群,
參考參考
[1]:KubeSphere:https://kubesphere.com.cn
[2]:OpenPitrix:https://kubesphere.io/zh/docs/pluggable-components/app-store
[3]:創建操作:https://kubesphere.io/zh/docs/quick-start/create-workspace-and-project
[4]:專案網關:https://kubesphere.io/zh/docs/project-administration/project-gateway
[5]:配置示例:https://github.com/radondb/radondb-mysql-kubernetes/blob/main/config/samples
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/433188.html
標籤:其他
