容器化 | 在 K8s 上部署 RadonDB MySQL Operator 和集群

作者:程潤科 數(shù)據(jù)庫研發(fā)工程師

編輯:張莉梅 高級文檔工程師

視頻:錢芬 高級測試工程師

本文將演示在 Kubernetes 上部署 RadonDB MySQL Kubernetes 2.X(Operator)的步驟顷锰,快速實現(xiàn) MySQL 高可用集群部署,以及部署集群的校驗和卸載方式。

部署版本為 RadonDB MySQL Kubernetes 2.1.2

部署準備

  • Kubernetes 集群
  • MySQL 客戶端工具

部署過程

步驟 1: 添加 Helm 倉庫

添加 Helm 倉庫 radondb 酥夭。

helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/

校驗倉庫信息屹徘,可查看到名為 radondb/mysql-operator 的 chart。

$ helm search repo
NAME                            CHART VERSION   APP VERSION                     DESCRIPTION                 
radondb/mysql-operator          0.1.0           v2.1.2                          Open Source爹耗,High Availability Cluster奔滑,based on MySQL                     

步驟 2: 部署 Operator

以下指定 release 名為 demo , 創(chuàng)建一個名為 demo-mysql-operatorDeployment[1]艾岂。

helm install demo radondb/mysql-operator

在這一步中,默認將同時創(chuàng)建集群所需的 CRD[2]王浴。

步驟 3: 部署 RadonDB MySQL 集群

執(zhí)行以下指令,以默認參數(shù)為 CRD mysqlclusters.mysql.radondb.com 創(chuàng)建一個實例梅猿,即創(chuàng)建 RadonDB MySQL 集群氓辣。

kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml

自定義集群部署參數(shù),可參考 配置參數(shù)[3]袱蚓。

部署校驗

校驗 RadonDB MySQL Operator

查看 demo 的 Deployment 和對應監(jiān)控服務钞啸,回顯如下信息則部署成功。

$ kubectl get deployment,svc
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
demo-mysql-operator   1/1     1            1           7h50m

NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/mysql-operator-metrics   ClusterIP   10.96.142.22    <none>        8443/TCP   8h

校驗 RadonDB MySQL 集群

執(zhí)行如下命令喇潘,將查看到如下 CRD体斩。

$ kubectl get crd | grep mysql.radondb.com
backups.mysql.radondb.com                             2021-11-02T07:00:01Z
mysqlclusters.mysql.radondb.com                       2021-11-02T07:00:01Z
mysqlusers.mysql.radondb.com                          2021-11-02T07:00:01Z

以默認部署為例,執(zhí)行如下命令將查看到名為 sample-mysql 的三節(jié)點 RadonDB MySQL 集群及用于訪問節(jié)點的服務响蓉。

$ kubectl get statefulset,svc
NAME           READY   AGE
sample-mysql   3/3     7h33m

NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/sample-follower          ClusterIP   10.96.131.84    <none>        3306/TCP   7h37m
service/sample-leader            ClusterIP   10.96.111.214   <none>        3306/TCP   7h37m
service/sample-mysql             ClusterIP   None            <none>        3306/TCP   7h37m

訪問集群

在 Kubernetes 集群內(nèi),支持使用 service_name 或者 clusterIP 方式哨毁,訪問 RadonDB MySQL枫甲。

RadonDB MySQL 提供 Leader 和 Follower 兩種服務,分別用于客戶端訪問主從節(jié)點。Leader 服務始終指向主節(jié)點(可讀寫)想幻,F(xiàn)ollower 服務始終指向從節(jié)點(只讀)粱栖。

file

RadonDB MySQL 集群架構圖

以下為客戶端與數(shù)據(jù)庫在同一 Kubernetes 集群內(nèi),訪問 RadonDB MySQL 的方式脏毯。

當客戶端的與數(shù)據(jù)庫部署在不同 Kubernetes 集群闹究,請參考 Kubernetes 訪問集群中的應用程序[4],配置端口轉(zhuǎn)發(fā)、負載均衡等連接方式。

ClusterIP 方式

RadonDB MySQL 的高可用讀寫 IP 指向 Leader 服務的 clusterIP按声,高可用只讀 IP 指向 Follower 服務的 clusterIP者娱。

mysql -h <clusterIP> -P <mysql_Port> -u <user_name> -p

以下示例用戶名為 radondb_usr, Leader 服務的 clusterIP 為 10.10.128.136 帝美,連接示例如下:

mysql -h 10.10.128.136 -P 3306 -u radondb_usr -p

service_name 方式

Kubernetes 集群的 Pod 之間支持通過 service_name 方式訪問 RadonDB MySQL。

service_name 方式不適用于從 Kubernetes 集群的物理機訪問數(shù)據(jù)庫 Pod。
連接 Leader 服務(RadonDB MySQL 主節(jié)點)

mysql -h <leader_service_name>.<namespace> -u <user_name> -p

用戶名為 radondb_usr用踩,release 名為 sample,RadonDB MySQL 命名空間為 default 忙迁,連接示例如下:

mysql -h sample-leader.default -u radondb_usr -p

連接 Follower 服務(RadonDB MySQL 從節(jié)點)

mysql -h <follower_service_name>.<namespace> -u <user_name> -p

用戶名為 radondb_usr脐彩,release 名為 sample,RadonDB MySQL 命名空間

default 姊扔,連接示例如下:

mysql -h sample-follower.default -u radondb_usr -p  

卸載

卸載 Operator

卸載當前命名空間下 release 名為 demo 的 RadonDB MySQL Operator惠奸。

helm delete demo

卸載集群

卸載 release 名為 sample RadonDB MySQL 集群。

kubectl delete mysqlclusters.mysql.radondb.com sample

卸載自定義資源

kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlclusters.mysql.radondb.com
kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlusers.mysql.radondb.com
kubectl delete customresourcedefinitions.apiextensions.k8s.io backups.mysql.radondb.com

引用參考

  1. Deploymenthttps://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/
  2. CRDhttps://kubernetes.io/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/
  3. 配置參數(shù)https://github.com/radondb/radondb-mysql-kubernetes/blob/main/docs/zh-cn/config_para.md
  4. Kubernetes 訪問集群中的應用程序https://kubernetes.io/zh/docs/tasks/access-application-cluster/

*相關部署視頻可至 RadonDB 開源社區(qū) B 站賬號觀看(搜索:RadonDB)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旱眯,一起剝皮案震驚了整個濱河市晨川,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌删豺,老刑警劉巖共虑,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呀页,居然都是意外死亡妈拌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門蓬蝶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尘分,“玉大人,你說我怎么就攤上這事丸氛∨喑睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵缓窜,是天一觀的道長定续。 經(jīng)常有香客問我谍咆,道長,這世上最難降的妖魔是什么私股? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任摹察,我火速辦了婚禮,結(jié)果婚禮上倡鲸,老公的妹妹穿的比我還像新娘供嚎。我一直安慰自己,他們只是感情好峭状,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布克滴。 她就那樣靜靜地躺著,像睡著了一般宁炫。 火紅的嫁衣襯著肌膚如雪偿曙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天羔巢,我揣著相機與錄音望忆,去河邊找鬼。 笑死竿秆,一個胖子當著我的面吹牛启摄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播幽钢,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼歉备,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匪燕?” 一聲冷哼從身側(cè)響起蕾羊,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帽驯,沒想到半個月后龟再,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡尼变,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年利凑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫌术。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡哀澈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出度气,到底是詐尸還是另有隱情割按,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布磷籍,位于F島的核電站适荣,受9級特大地震影響丙躏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜束凑,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栅盲。 院中可真熱鬧汪诉,春花似錦、人聲如沸谈秫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拟烫。三九已至该编,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硕淑,已是汗流浹背课竣。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留置媳,地道東北人于樟。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像拇囊,于是被迫代替她去往敵國和親迂曲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容