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

程潤科

數(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)用倉庫

  1. 登錄 KubeSphere 的 Web 控制臺。
  2. demo 企業(yè)空間中,進(jìn)入應(yīng)用管理下的應(yīng)用倉庫頁面,點(diǎn)擊添加,彈出倉庫配置對話框。
  3. 輸入倉庫名稱和倉庫 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ù)。
  4. 將倉庫成功導(dǎo)入到 KubeSphere 之后,在列表中即可查看 RadonDB MySQL 倉庫。

2、部署 RadonDB MySQL Operator

  1. 在 demo-project 項(xiàng)目中,進(jìn)入應(yīng)用負(fù)載下的應(yīng)用頁面,點(diǎn)擊部署新應(yīng)用。
  2. 在對話框中,選擇來自應(yīng)用模板,進(jìn)入應(yīng)用模版頁面。
  3. 從下拉菜單中選擇 radondb-mysql-operator 應(yīng)用倉庫。
  4. 點(diǎn)擊 mysql-operator 應(yīng)用圖標(biāo),查看和配置應(yīng)用信息。
  1. 在配置文件選項(xiàng)卡,可查看和編輯 values.yaml 配置文件;在版本列框區(qū)域,可查看和選擇版本號。
  1. 點(diǎn)擊部署,進(jìn)入 mysql-operator 應(yīng)用基本信息配置頁面,確認(rèn)應(yīng)用名稱、應(yīng)用版本以及配置部署位置。
  2. 點(diǎn)擊下一步,進(jìn)入 mysql-operator 應(yīng)用配置頁面,確認(rèn) values.yaml 配置信息,可編輯文件修改配置。
  1. 點(diǎn)擊部署,返回應(yīng)用模版頁面。待應(yīng)用狀態(tài)切換為運(yùn)行中,則應(yīng)用部署成功。

更新 Operator

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

  1. 在 KubeSphere 平臺刪除歷史版本 Operator 應(yīng)用。
  1. 參考如上步驟,安裝最新版本 Operator 。

  2. 執(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 集群。

  1. 在右下角 工具箱中選擇 Kubectl 工具,打開終端窗口。
  2. 執(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
  1. 集群創(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)。

  1. 進(jìn)入 應(yīng)用負(fù)載 下的 服務(wù) 頁面,可查看集群服務(wù)信息。
  1. 進(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)。
  1. 進(jìn)入 應(yīng)用負(fù)載 下的 容器組 頁面,可查看集群節(jié)點(diǎn)運(yùn)行狀態(tài)。
  1. 進(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容