天天看點

TiKV叢集搭建

1.準備環境

準備4台ubuntu 16.04虛拟機

部署規劃:

節點類型 CPU 記憶體 存儲 部署數量 所在節點IP
TiKV 8 core 8 GB 200GB 3

10.10.10.2

10.10.10.3

10.10.10.4

PD
monitoring server 1 10.10.10.5
grafana server
alertmanager server

2.安裝預準備

2.1.初始化磁盤

這裡以/dev/vdb為例,這步操作需要在10.10.10.2、10.10.10.3和10.10.10.4這3個節點上執行。

(1)為磁盤分區

parted -s -a optimal /dev/vdb mklabel gpt -- mkpart primary ext4 1 -1

(2)格式化分區

mkfs.ext4 /dev/vdb

(3)檢視分區裝置uuid

lsblk -f

TiKV叢集搭建

(4)将以下挂載資訊寫入到/etc/fstab檔案裡

UUID=e8ca4d78-1f1e-4a0d-a778-efdc1e47b22b /data ext4 defaults,nodelalloc,noatime 0 2

(5)執行挂載指令

mkdir -p /data && mount -a

(6)檢查是否挂載上了

mount -t ext4

2.2.添加tikv使用者并讓各節點tikv使用者能互相免認證登入

這步操作需要在每個節點上執行。

編輯/etc/ssh/sshd_config,以下兩個配置設為yes,儲存後退出(友善用root ssh登入,友善後面添加tikv user)

PermitRootLogin yes

PasswordAuthentication yes

重新開機sshd服務:

sudo service sshd restart

useradd tikv && passwd

執行visudo指令在末尾加上以下文本

tikv ALL=(ALL) NOPASSWD: ALL

儲存退出(按crtl+o,然後enter,然後crtl+x)

配置免認證登入:

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub 其它節點的IP

認證是否能免認證登入其它節點:

ssh 其它節點的IP

認證tikv使用者是否能免密切換到root使用者:

sudo -su root

3.開始部署

這步操作隻需要在1個節點上操作,比如在10.10.10.2節點上操作。

3.1.安裝tiup部署工具

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

source .bash_profile

tiup cluster

tiup update --self && tiup update cluster

認證是否安裝成功:

3.2.建立部署拓撲圖檔案

vim topo.yaml

填入以下内容後儲存退出。

global:

  user: "tikv"

  ssh_port: 22

  deploy_dir: "/data/tikv-deploy"

  data_dir: "/data/tikv-data"

pd_servers:

  - host: 10.10.10.2

  - host: 10.10.10.3

  - host: 10.10.10.4

tikv_servers:

monitoring_servers:

  - host: 10.10.10.5

grafana_servers:

alertmanager_servers:

3.2.開始部署

執行以下指令,一條一條執行(foobar是叢集名,可以自己更改,v5.1.0是tikv版本,也可以更改):

tiup cluster deploy foobar v5.1.0 ./topo.yaml --user tikv -i ~/.ssh/id_rsa

tiup cluster start foobar

3.3.認證叢集是否部署成功

tiup cluster list

tiup cluster display foobar

浏覽器登入監控平台頁面:http://10.10.10.5:3000/

初始賬号密碼:admin/admin

3.4.安裝cli工具進行TiKV管理

安裝指定版本的管理工具,比如安裝5.2.0的cli管理工具:

tiup ctl:v5.2.0

4.測試TiKV叢集

使用tikv的go client測試tikv叢集

例子連結:https://tikv.org/docs/4.0/reference/clients/go/

使用tikv的python client測試tikv叢集

例子連結:https://tikv.org/docs/5.1/concepts/tikv-in-5-minutes/#set-up-a-local-tikv-cluster-with-the-default-options