TiKV部署;結合dcoker-ce 部署單主機 TiKV 集群


本博客來源自個人畢業設計的開發過程中,需要使用TiKV做為K-V store進行持久化存儲數據,為方便開發故部署單節點集群,方便調試:

本部署方案,修改自TiKV官方文檔中3節點部署方案,利用docker 用戶自定義網絡實現單機部署。部署並驗證后,顯示部署方案可行;

關於docker如何安裝和使用,請參考:docker 安裝與使用 

TiKV整體架構:https://tikv.org/docs/4.0/concepts/architecture/

單主機3節點TiKV部署方案:

名稱

節點IP

服務

數據路徑

節點1

172.18.0.11

PD1

/mnt/tikv/pd1

節點2

172.18.0.12

PD2

/mnt/tikv/pd2

節點3

172.18.0.13

PD3

/mnt/tikv/pd3

節點4

172.18.0.14

TiKV1

/mnt/tikv/tikv1

節點5

172.18.0.15

TiKV2

/mnt/tikv/tikv2

節點6

172.18.0.16

TiKV3

/mnt/tikv/tikv3

 環境初始化命令:

mkdir -p /mnt/tikv/pd1
mkdir -p /mnt/tikv/pd2
mkdir -p /mnt/tikv/pd3
mkdir -p /mnt/tikv/tikv1
mkdir -p /mnt/tikv/tikv2
mkdir -p /mnt/tikv/tikv3
docker network create --subnet=172.18.0.0/16 yx-network # 創建自定義網絡
# 拉取鏡像
docker pull pingcap/tikv:latest docker pull pingcap/pd:latest

節點啟動腳本:

PD1:

docker run -d --name pd1 \
-p 12379:2379 \
-p 12380:2380 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/pd1:/data \
--network yx-network \
--ip 172.18.0.11 \
pingcap/pd:latest \
--name="pd1" \
--data-dir="/data/pd1" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://172.18.0.11:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://172.18.0.11:2380" \
--initial-cluster="pd1=http://172.18.0.11:2380,pd2=http://172.18.0.12:2380,pd3=http://172.18.0.13:2380"

PD2:

docker run -d --name pd2 \
-p 22379:2379 \
-p 22380:2380 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/pd2:/data \
--network yx-network \
--ip 172.18.0.12 \
pingcap/pd:latest \
--name="pd2" \
--data-dir="/data/pd2" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://172.18.0.12:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://172.18.0.12:2380" \
--initial-cluster="pd1=http://172.18.0.11:2380,pd2=http://172.18.0.12:2380,pd3=http://172.18.0.13:2380"

PD3:

docker run -d --name pd3 \
-p 32379:2379 \
-p 32380:2380 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/pd3:/data \
--network yx-network \
--ip 172.18.0.13 \
pingcap/pd:latest \
--name="pd3" \
--data-dir="/data/pd3" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://172.18.0.13:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://172.18.0.13:2380" \
--initial-cluster="pd1=http://172.18.0.11:2380,pd2=http://172.18.0.12:2380,pd3=http://172.18.0.13:2380"

TiKV1:

docker run -d --name tikv1 \
-p 40160:20160 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/tikv1:/data \
--network yx-network \
--ip 172.18.0.14 \
pingcap/tikv:latest \
--addr="0.0.0.0:20160" \
--advertise-addr="172.18.0.14:20160" \
--data-dir="/data/tikv1" \
--pd="172.18.0.11:2379,172.18.0.12:2379,172.18.0.13:2379"

TiKV2:

docker run -d --name tikv2 \
-p 50160:20160 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/tikv2:/data \
--network yx-network \
--ip 172.18.0.15 \
pingcap/tikv:latest \
--addr="0.0.0.0:20160" \
--advertise-addr="172.18.0.15:20160" \
--data-dir="/data/tikv2" \
--pd="172.18.0.11:2379,172.18.0.12:2379,172.18.0.13:2379"

TiKV3:

docker run -d --name tikv3 \
-p 60160:20160 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/tikv3:/data \
--network yx-network \
--ip 172.18.0.16 \
pingcap/tikv:latest \
--addr="0.0.0.0:20160" \
--advertise-addr="172.18.0.16:20160" \
--data-dir="/data/tikv3" \
--pd="172.18.0.11:2379,172.18.0.12:2379,172.18.0.13:2379"

集群驗證:

curl 172.18.0.11:2379/pd/api/v1/stores # 驗證集群,所有返回Up即成功!

保持更新,轉載請注明出處,更多內容請關注cnblogs.com/xuyaowen; 

訪問dashboard:http://172.18.0.11:2379/dashboard

參考文檔:https://github.com/yaowenxu/Workplace/tree/master/understand-TiKV


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM