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
(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