2.3.1 How to Deploy TiDB Platform with TiUP(如何通过 TiUP 部署 TiDB)

学习时长:

120min

课程收获:

了解 TiUP 组件管理方式和集群管理方式

掌握 TiUP 部署本地测试环境

掌握 TiUP cluster 部署生产环境集群

课程内容:

本课程简要介绍了 TiUP 的设计目标,组件管理方式,以及如何使用 TiUP 管理 TiDB 集群。在各种系统软件和应用软件的安装管理中,包管理器均有着广泛的应用,包管理工具的出现大大简化了软件的安装和升级维护工作。在早期的 TiDB 生态中,没有专门的包管理工具,使用者只能通过相应的配置文件和文件夹命名来手动管理。从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,用户想要运行 TiDB 生态中任何组件时,只需要执行 TiUP 一行命令即可,相比以前,极大地降低了管理难度。

操作实践

安装TiUP

[ec2-user@ip-172-31-14-99 ~]$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.8 (Maipo)
# 安装TiUP
[root@ip-172-31-14-99 ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4412k 100 4412k 0 0 8027k 0 --:--:-- --:--:-- --:--:-- 8022k
WARN: adding root certificate via internet: https://tiup-mirrors.pingcap.com/root.json
You can revoke this by remove /root/.tiup/bin/7b8e153f2e2d0928.root.json
Set mirror to https://tiup-mirrors.pingcap.com success
Detected shell: bash
Shell profile: /root/.bash_profile
/root/.bash_profile has been modified to to add tiup to PATH
open a new terminal or source /root/.bash_profile to use it
Installed path: /root/.tiup/bin/tiup
===============================================
Have a try: tiup playground
===============================================
[root@ip-172-31-14-99 ~]# source /root/.bash_profile
# 查看版本
[root@ip-172-31-14-99 ~]# tiup --version
v1.0.8 tiup
Go Version: go1.13
Git Branch: master
GitHash: 4276089
# 查看帮助
[root@ip-172-31-14-99 ~]$ tiup help
TiUP is a command-line component management tool that can help to download and install
TiDB platform components to the local system. You can run a specific version of a component via
"tiup <component>[:version]". If no version number is specified, the latest version installed
locally will be used. If the specified component does not have any version installed locally,
the latest stable version will be downloaded from the repository.

Usage:
tiup [flags] <command> [args...]
tiup [flags] <component> [args...]

Available Commands:
install Install a specific version of a component
list List the available TiDB components or versions
uninstall Uninstall components or versions of a component
update Update tiup components to the latest version
status List the status of instantiated components
clean Clean the data of instantiated components
mirror Manage a repository mirror for TiUP components
telemetry Controls things about telemetry
help Help about any command or component

Components Manifest:
use "tiup list" to fetch the latest components manifest

Flags:
-B, --binary <component>[:version] Print binary path of a specific version of a component <component>[:version]
and the latest version installed will be selected if no version specified
--binpath string Specify the binary path of component instance
-h, --help help for tiup
--skip-version-check Skip the strict version check, by default a version must be a valid SemVer string
-T, --tag string Specify a tag for component instance
-v, --version Print the version of tiup

Component instances with the same "tag" will share a data directory ($TIUP_HOME/data/$tag):
$ tiup --tag mycluster playground

Examples:
$ tiup playground # Quick start
$ tiup playground nightly # Start a playground with the latest nightly version
$ tiup install <component>[:version] # Install a component of specific version
$ tiup update --all # Update all installed components to the latest version
$ tiup update --nightly # Update all installed components to the nightly version
$ tiup update --self # Update the "tiup" to the latest version
$ tiup list # Fetch the latest supported components list
$ tiup status # Display all running/terminated instances
$ tiup clean <name> # Clean the data of running/terminated instance (Kill process if it's running)
$ tiup clean --all # Clean the data of all running/terminated instances

Use "tiup [command] --help" for more information about a command.

TiUP部署本地测试环境-111

# 通过 list 命令先查看 playground 提供了哪些版本
[root@ip-172-31-14-99 ~]# tiup list playground
Available versions for playground:
Version Installed Release Platforms
------- --------- ------- ---------
v0.0.1 2020-02-27T10:10:10+08:00 darwin/amd64,linux/amd64
v0.0.2 2020-03-03T19:39:35+08:00 darwin/amd64,linux/amd64
v0.0.3 2020-03-03T19:39:35+08:00 darwin/amd64,linux/amd64
v0.0.4 2020-03-03T19:39:35+08:00 darwin/amd64,linux/amd64
v0.0.5 2020-03-03T19:39:35+08:00 darwin/amd64,linux/amd64
v0.0.6 2020-04-03T16:21:57+08:00 darwin/amd64,linux/amd64
v0.0.7 2020-04-16T10:37:27+08:00 darwin/amd64,linux/amd64
v0.0.8 2020-04-17T15:58:08+08:00 darwin/amd64,linux/amd64
v0.0.9 2020-04-17T17:45:49+08:00 darwin/amd64,linux/amd64
v1.0.0 2020-05-28T18:19:00+08:00 darwin/amd64,linux/amd64
v1.0.1 2020-06-02T00:24:24+08:00 darwin/amd64,linux/amd64
v1.0.2 2020-06-04T20:23:55+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.3 2020-06-05T20:09:57+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.4 2020-06-09T21:19:32+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.5 2020-06-18T15:02:33+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.6 2020-06-21T19:02:35+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.7 2020-06-24T22:07:54+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.8 2020-07-13T18:39:38+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.0.9 2020-08-03T20:16:56+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.1.0 2020-08-28T18:42:07+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.1.1 2020-09-01T21:35:33+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.1.2 2020-09-11T20:40:56+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.2.0 2020-09-29T17:33:05+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.2.1 2020-10-23T18:25:49+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.2.3 2020-10-30T19:18:08+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.2.4 2020-11-19T21:10:00+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.2.5 2020-11-27T18:10:44+08:00 darwin/amd64,linux/amd64,linux/arm64
v1.3.0 2020-12-18T19:06:29+08:00 darwin/amd64,linux/amd64,linux/arm64

# 安装最新版本的 playground
[root@ip-172-31-14-99 ~]$ tiup install playground
download https://tiup-mirrors.pingcap.com/playground-v1.3.0-linux-amd64.tar.gz 254.48 KiB / 8.49 MiB 2.93% ? pdownload https://tiup-mirrors.pingcap.com/playground-v1.3.0-linux-amd64.tar.gz 2.21 MiB / 8.49 MiB 26.00% ? p/download https://tiup-mirrors.pingcap.com/playground-v1.3.0-linux-amd64.tar.gz 8.49 MiB / 8.49 MiB 100.00% 27.19 MiB p/s
# 启动一个默认的集群
[root@ip-172-31-14-99 ~]$ tiup playground
Starting component `playground`:
Use the latest stable version: v4.0.8

Specify version manually: tiup playground <version>
The stable version: tiup playground v4.0.0
The nightly version: tiup playground nightly

Playground Bootstrapping...
...

TiUP部署测试Cluster-233

tiup install cluster
tiup cluster deploy prod-cluster v3.0.12 /tmp/topology.yaml
tiup cluster list
tiup cluster start prod-cluster
iup cluster display prod-cluster
tiup cluster scale-in prod-cluster -N 172.16.5.140:20160
tiup cluster scale-out prod-cluster /tmp/scale.yaml
tiup cluster upgrade prod-cluster v4.0.0-rc
tiup cluster edit-config prod-cluster
tiup cluster reload prod-cluster

思维导图




TiUP 简介
TiUP 简介 是什么 解决了什么问题 命令介绍 在早期的 TiDB 生态中,没有专门的包管理工具,运维管理难度大 TiDB 4.0 的生态系统里,TiUP 作为新的工具 承担着包管理器的角色,管理着 TiDB 生态下众多的组件(例如 TiDB、PD、TiKV) 像 Prometheus 等第三方监控报表工具甚至需要额外的特殊管理 安装 Commands Usage tiup [flags] <command> [args...] tiup [flags] <component> [args...] install list uninstall update status clean help Components playground package cluster mirrors 命令组成 tiup TiUP 程序名 flags 全局通用选项,可选 command / component 运行的命令或组件 args 命令或组件的专有参数,可选 查询组件列表,知道有哪些组件可以安装,以及这些组件有哪些版本可选 安装某个组件的特定版本 升级某个组件到最新的版本 卸载组件 查看组件运行状态 清理组件实例 打印帮助信息,后面跟命令则是打印该命令的使用方法 --binary 打印某个组件的可执行程序文件路径 --binpath 指定要运行组件的可执行程序文件路径,这样可以不使用组件的安装路径 --tag 指定组件运行实例的 tag 名称,该名称可以认为是该实例的 ID,如果不指定,则会自动生成随 机的 tag 名称 语法 常用 查询组件列表 tiup list 查看当前有哪些组件可以安装 tiup list <component> 查看某个组件有哪些版本可以安装 查看当前已经安装的所有组件 tiup list --installed 从服务器获取 TiKV 所有可安装版本组件列表 tiup list tikv --refresh 安装组件 使用 TiUP 安装最新稳定版的 TiDB tiup install tidb 使用 TiUP 安装 nightly 版本的TiDB tiup install tidb:nightly 使用 TiUP 安装 v3.0.6 版本的 TiKV tiup install tikv:v3.0.6 升级组件 升级所有组件至最新版本 tiup update --all 升级所有组件至 nightly 版本 tiup update --all --nightly 升级 TiUP 至最新版本 tiup update --self 运行组件 运行 v3.0.8 版本的 TiDB tiup tidb:v3.0.8 指定 tag 运行 TiKV tiup --tag=experiment tikv 查询组件运行状态 查看 TiDB 运行状态 tiup status experiment Name: 实例的 tag 名称 Component: 实例的组件名称 PID: 实例运行的进程 ID Status: 实例状态,RUNNING 表示正在运行,TERM 表示已经终止 Created Time: 实例的启动时间 Directory: 实例的工作目录,可以通过 --tag 指定 Binary: 实例的可执行程序,可以通过 --binpath Args: 实例的运行参数 清理组件实例 清理 tag 名称为 experiment 的组件实例 tiup clean experiment 清理所有组件实例 tiup clean --all 卸载组件 卸载 v3.0.8 版本的 TiDB tiup uninstall tidb:v3.0.8 卸载所有版本的 TiKV tiup uninstall tikv --all 卸载所有已经安装的组件 tiup uninstall --all 部署 TiDB curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh 测试环境 生产集群 怎么用 通过 playground 组件启动本地集群 tiup install playground 启动 tiup playground 快速启动一个playground集群 查找 playground 的最新版本 使用各组件的最新 release 版本 使用默认组件个数 tiup playground:v0.0.6 tiup playground:v0.0.6 v4.0.0 启动由 1 个 TiDB、1 个 TiKV 和 1 个 PD 构成的最小化集群 依次启动完各个组件 调用 TiUP 命令来启动 TiDB/PD/TiKV 组件,譬如调用 tiup tidb:v4.0.0 来启动 TiDB 实例,当 然,在真正执行时它还会额外指定一些参数 启动成功 在依次启动完各个组件后,playground 会告诉你启动成功,并告诉你一些有用的信息,譬如如 何通过 MySQL 客户端连接集群、如何访问 dashboard 通过 playground 搭建测试集群 tiup --tag=my-cluster playground 通过指定 tag 名称的方法来启动 启动 v3.0.9 版本的集群 tiup playground v3.0.9 启动 nightly 版本的集群 tiup playground nightly 指定 TiKV 组件的个数为 3 个,同时启动 Prometheus 监控 tiup playground --kv=3 --monitor 各组件使用本机的对外 IP 地址 x.x.x.x 提供服务 tiup playground --host x.x.x.x 安装 作为一个分布式系统,最基础的 TiDB 测试集群通常由 2 个 TiDB 组件、3 个 TiKV 组件和 3 个 PD组件来构成 快速启动由 1 个 TiDB、1 个 TiKV 和 1 个 PD 构成的最小化集群 拓展 部署基础测试集群 tiup playground --db=2 --kv=3 --pd=3 连接到测试集群 tiup playground --db=2 --kv=3 --pd=3 --monitor 带监控功能的 tiup client 自动探测到当前启动了哪些集群,并展示一个类似 DOS 图形化界面的列表,让你选择连接哪 个集群。 指定 tag 名称来连接到特定的集群 tiup client <tag> 安装 cluster 组件 tiup install cluster 部署集群 tiup cluster deploy <cluster-name> <version> <topology.yaml> [flags] tiup cluster deploy prod-cluster v3.0.12 /tmp/topology.yaml 查看集群列表 tiup cluster list 启动集群 生产集群 部署 启动 停止 重启 缩容 扩容 升级 tiup cluster start prod-cluster 查看集群状态 tiup cluster display prod-cluster 缩容 tiup cluster scale-in <cluster-name> [flags] tiup cluster scale-in prod-cluster -N 172.16.5.140:20160 将 172.16.5.140 上的 TiKV 干掉 扩容 cluster scale-out <cluster-name> <topology.yaml> [flags] 升级 tiup cluster upgrade prod-cluster v4.0.0-rc 更新配置 tiup cluster edit-config prod-cluster tiup cluster reload prod-cluster tiup cluster reload prod-cluster -R tidb edit-config reload 其他 通过help帮助获取

学习过程中参考的其他资料