容器化 | 在 KubeSphere 中部署 MySQL 叢集

RadonDB發表於2022-02-25

程潤科

資料庫研發工程師,目前從事 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、新增應用倉庫

  1. 登入 KubeSphere 的 Web 控制檯。
  2. demo 企業空間中,進入應用管理下的應用倉庫頁面,點選新增,彈出倉庫配置對話方塊。
  3. 輸入倉庫名稱和倉庫 URL。
    • 輸入 radondb-mysql-operator 作為應用倉庫名稱。
    • 輸入 https://radondb.github.io/radondb-mysql-kubernetes/ 作為倉庫的 URL,並點選驗證以驗證 URL,在 URL 旁邊呈現一個綠色的對號,驗證通過後,點選確定繼續。
  4. 將倉庫成功匯入到 KubeSphere 之後,在列表中即可檢視 RadonDB MySQL 倉庫。

file

2、部署 RadonDB MySQL Operator

  1. 在 demo-project 專案中,進入應用負載下的應用頁面,點選部署新應用。
  2. 在對話方塊中,選擇來自應用模板,進入應用模版頁面。
  3. 從下拉選單中選擇 radondb-mysql-operator 應用倉庫。
  4. 點選 mysql-operator 應用圖示,檢視和配置應用資訊。

file

  1. 在配置檔案選項卡,可檢視和編輯 values.yaml 配置檔案;在版本列框區域,可檢視和選擇版本號。

file

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

file

  1. 點選部署,返回應用模版頁面。待應用狀態切換為執行中,則應用部署成功。

file

更新 Operator

若已在 KubeSphere 部署過歷史版本 Operator,可以選擇如下方式更新到最新版本。

  1. 在 KubeSphere 平臺刪除歷史版本 Operator 應用。

file

  1. 參考如上步驟,安裝最新版本 Operator 。

  2. 執行如下命令更新 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 叢集。

  1. 在右下角 工具箱中選擇 Kubectl 工具,開啟終端視窗。
  2. 執行以下命令,安裝 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
  1. 叢集建立成果後,執行如下命令,可檢視 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 叢集狀態。

  1. 進入 應用負載 下的 服務 頁面,可檢視叢集服務資訊。

file

  1. 進入 應用負載 下的 工作負載 頁面,點選 有狀態副本集,可檢視叢集狀態。進入一個 有狀態副本集 詳情頁面,點選 監控 標籤頁,可檢視一定時間範圍內的叢集指標。

file

  1. 進入 應用負載 下的 容器組 頁面,可檢視叢集節點執行狀態。

file

  1. 進入 儲存 下的 儲存卷 頁面,可檢視儲存卷。檢視某個儲存卷用量資訊,以其中一個資料節點為例,可以看到當前儲存的儲存容量和剩餘容量等監控資料。

file

至此,完成在 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

相關文章