docker-compose部署mariadb集群

環(huán)境

主機名 機器IP
10.0.102.214 node1
10.0.102.220 node2
10.0.102.116 node3

部署

compose-mariadb.yaml文件說明

[root@k8s-node-1 ~]# vim compose-mariadb.yaml
version: '3'
services:
  mariadb_galera0:                   #名稱修改下便于區(qū)別臭笆,各個節(jié)點不同
    image: severalnines/mariadb:10.1    #鏡像
ports:
      - "3306:3306"     #各個節(jié)點訪問端口
    environment:        #環(huán)境變量
      CLUSTER_NAME: "mariadb-cluster-new"   #定義mariadb集群名稱
      DISCOVERY_SERVICE: "10.0.102.214:2379,10.0.102.175:2379,10.0.102.191:2379"
      MYSQL_ROOT_PASSWORD: "mypassword123"
      XTRABACKUP_PASSWORD: "mypassword123"
    command:        #容器啟動參數(shù)
      - --innodb_buffer_pool_size=256M
      - --max_connections=81
healthcheck:
interval: 5s
timeout: 3s
retries: 200 # interval * retries > SST duration
volumes:
      - /data:/var/lib/mysql                #各個節(jié)點的掛載目錄妓柜,預(yù)先創(chuàng)好
      - /etc/my.cnf.d:/etc/my.cnf.d         #是否開通binlog配置好,放此目錄
      - /etc/localtime:/etc/localtime       #定義時區(qū)
network_mode: "host"                        #使用本機網(wǎng)絡(luò)

【見圖1】
1.png

k8s-node-1

部署:
創(chuàng)建掛載所需目錄與文件
mkdir /data/
mkdir /etc/my.cnf.d

[root@10-0-102-165 ~]# vim /etc/my.cnf.d/bin-log.cnf
[mysqld]
log-bin= mysql-bin
log_slave_updates = 1
expire_logs_days = 20
server-id = 211

執(zhí)行docker-compose命令進行部署(部署新集群時確保/data目錄為空)
[root@10-0-102-165 ~]# rm -rf /data/*
[root@10-0-102-165 ~]# docker-compose -f compose-mariadb.yaml up -d
Creating root_mariadb_galera0_1 ... done
【見圖2】


查詢?nèi)萜鲉尤罩?# docker logs -f $(dockerps -a | grep 'severalnines/mariadb:10.1' |awk '{print $NF}')

驗證容器是否啟動及集群狀態(tài)
mysql -uroot -pmypassword123 -h10.0.102.165
MariaDB [(none)]> show status like 'wsrep%';
【見圖3】
2.png

3.png

k8s-node-2

創(chuàng)建掛載所需目錄與文件
#mkdir /data/
#mkdir /etc/my.cnf.d      #不開通binlog只創(chuàng)建目錄即可

啟動容器
# rm -rf /data/*
# docker-compose -f compose-mariadb.yaml up -d
Creating root_mariadb_galera1_1 ... done
# docker logs -f $(dockerps -a | grep 'severalnines/mariadb:10.1' |awk '{print $NF}')
【見圖4】 

驗證
mysql -uroot -pmypassword123 -h 10.0.102.165 -e "show status like 'wsrep%';"
可以發(fā)現(xiàn)節(jié)點2的ip已經(jīng)加入到mariadb集群中稳其,只等第三個節(jié)點了
【見圖5】
4.png

5.png

k8s-node-3

創(chuàng)建掛載所需目錄與文件
mkdir /data/
mkdir /etc/my.cnf.d      #不開通binlog只創(chuàng)建目錄即可

2.啟動容器
# rm -rf /data/*
# docker-compose -f compose-mariadb.yaml up -d
Creating root_mariadb_galera1_1 ... done
# docker logs -f $(dockerps -a | grep 'severalnines/mariadb:10.1' |awk '{print $NF}')
 【見圖6】

3.驗證
mysql -uroot -pmypassword123 -h 10.0.102.165 -e "show status like 'wsrep%';"
【見圖7】
6.png

7.png

注意事項

1.擴容
擴容比較簡單执俩,只需copy一份compose文件药版,簡單修改名稱即可伯铣,創(chuàng)建相應(yīng)的目錄受裹,使用docker-compose -f 文件名 up –d即可事扭,請確保啟動前/data目錄為空

2.縮容
縮容時,先使用docker stop (dockerps -a | grep 'severalnines/mariadb:10.1' |awk '{printNF}')停止容器桶癣,然后使用dockerrm(dockerps -a | grep 'severalnines/mariadb:10.1' |awk '{printNF}')刪除退出的容器即可

3.集群啟動與停止時請按照順序執(zhí)行拥褂,不可并行,而且停止時建議使用docker stop命令

4.某個節(jié)點異常后重新加入集群需要停止服務(wù)并清空/data目錄再使用docker-compose牙寞,請確保compose文件中集群信息的配置與集群相符合

5備份恢復(fù)操作與k8s中mariadb集群的備份恢復(fù)操作相同
五饺鹃、配置文件(對應(yīng)各個節(jié)點,在相應(yīng)節(jié)點運行)

yaml文件

compose-mariadb1.yaml

version: '3'

services:

  mariadb_galera0:
    image: severalnines/mariadb:10.1
    ports:
      - "3306:3306"
    environment:
      CLUSTER_NAME: "mariadb-cluster-new"
      DISCOVERY_SERVICE: "10.0.102.214:2379,10.0.102.175:2379,10.0.102.191:2379"
      MYSQL_ROOT_PASSWORD: "mypassword123"
      XTRABACKUP_PASSWORD: "mypassword123"
    command:
      - --innodb_buffer_pool_size=256M
      - --max_connections=81
    healthcheck:
      interval: 5s
      timeout: 3s
      retries: 200 # interval * retries > SST duration
    volumes:
      - /data:/var/lib/mysql
      - /etc/my.cnf.d:/etc/my.cnf.d
      - /etc/localtime:/etc/localtime
    network_mode: "host"

compose-mariadb2.yaml

version: '3'

services:

  mariadb_galera1:
    image: severalnines/mariadb:10.1
    ports:
      - "3306:3306"
      - "4567:4567"
    environment:
      CLUSTER_NAME: "mariadb-cluster-new"
      DISCOVERY_SERVICE: "10.0.102.214:2379,10.0.102.175:2379,10.0.102.191:2379"
      MYSQL_ROOT_PASSWORD: "mypassword123"
      XTRABACKUP_PASSWORD: "mypassword123"
    command:
      - --innodb_buffer_pool_size=256M
      - --max_connections=81
    healthcheck:
      interval: 8s
      timeout: 3s
      retries: 300 # interval * retries > SST duration
    volumes:
      - /data:/var/lib/mysql
      - /etc/my.cnf.d:/etc/my.cnf.d
      - /etc/localtime:/etc/localtime

compose-mariadb3.yaml

version: '3'

services:

  mariadb_galera2:
    image: severalnines/mariadb:10.1
    ports:
      - "3306:3306"
      - "4567:4567"
    environment:
      CLUSTER_NAME: "mariadb-cluster-new"
      DISCOVERY_SERVICE: "10.0.102.214:2379,10.0.102.175:2379,10.0.102.191:2379"
      MYSQL_ROOT_PASSWORD: "mypassword123"
      XTRABACKUP_PASSWORD: "mypassword123"
    command:
      - --innodb_buffer_pool_size=256M
      - --max_connections=81
    healthcheck:
      interval: 5s
      timeout: 3s
      retries: 200 # interval * retries > SST duration
    volumes:
      - /data:/var/lib/mysql
      - /etc/my.cnf.d:/etc/my.cnf.d
      - /etc/localtime:/etc/localtime
    network_mode: host
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末间雀,一起剝皮案震驚了整個濱河市悔详,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惹挟,老刑警劉巖茄螃,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異连锯,居然都是意外死亡归苍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門运怖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拼弃,“玉大人,你說我怎么就攤上這事驳规‰攘玻” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長医男。 經(jīng)常有香客問我砸狞,道長,這世上最難降的妖魔是什么镀梭? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任刀森,我火速辦了婚禮,結(jié)果婚禮上报账,老公的妹妹穿的比我還像新娘研底。我一直安慰自己,他們只是感情好透罢,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布榜晦。 她就那樣靜靜地躺著,像睡著了一般羽圃。 火紅的嫁衣襯著肌膚如雪乾胶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天朽寞,我揣著相機與錄音识窿,去河邊找鬼。 笑死脑融,一個胖子當著我的面吹牛喻频,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肘迎,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼甥温,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了膜宋?” 一聲冷哼從身側(cè)響起窿侈,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤炼幔,失蹤者是張志新(化名)和其女友劉穎秋茫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乃秀,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡肛著,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跺讯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枢贿。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刀脏,靈堂內(nèi)的尸體忽然破棺而出局荚,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布耀态,位于F島的核電站轮傍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏首装。R本人自食惡果不足惜创夜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仙逻。 院中可真熱鬧驰吓,春花似錦、人聲如沸系奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缺亮。三九已至偎蘸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞬内,已是汗流浹背迷雪。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虫蝶,地道東北人章咧。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓伺帘,卻偏偏與公主長得像置尔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牡整,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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