tioper名字由来:TiDB + Operator。使用tioper可以实现TiDB多集群创建和管理。 如果本机装有Docker,还可以使用tioper在本地启动一个kubernetes集群,方便尝鲜。
tioper正确运行需要依赖以下软件,请确保本机已经安装,且符合最低版本要求:
- Docker: 17.03 or later
- Helm Client: 2.9.0 or later
- Kubectl: 1.10 or later
tioper提供了以下命令:
- create: 创建一个TiDB集群
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh create
::Create new TiDB cluster
cluster name:demo
instances of pd (default is 3):3
instances of tidb: (default is 2)2
instances of tikv: (default is 3)3
::Creating a new TiDB cluster: demo with conf: { pds: 3, tidbs: 2, tikvs: 3}
....
::Wait TiDB Cluster to get Ready, this will take some time.
....................................................................................done.
::TiDB Custer: demo is up, You can have a try following these setp:
- kubectl port-forward -n ti-cluster-demo svc/demo-tidb 4000:4000 > /dev/null &
- mysql -h 127.0.0.1 -P 4000 -u root -D test -p 'cefvlDpTk0'
这是一次完整的创建过程日志输出(忽略了部分不重要的日志),启动完成后我们需要执行kubectl port-forward
实现网络转发(后续会为每一个cluster分配一个域名),然后即可使用MySQL client链接并进行测试。
- list: 获取当前服务器上所有的TiDB集群
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh list
::Show all TiDB cluster
demo
- scale: 调整某个集群服务实例数
tidb主要由三个模块构成:pd,tikv,tidb,可根据需求调整其数量(线上服务参考tidb最佳配置)。
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh scale
::Scale TiDB cluster
cluster name:demo
scale pd to:1
scale tidb to:1
scale tikv to:1
::Scaling TiDB cluster: demo to { pds: 1, tidbs: 1, tikvs: 1}
- shutdown: 按名称关闭集群,但不删除其已写入的数据
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh shutdown
::Shutdown a TiDB cluster
cluster name:demo
- delete: 按名称关闭集群,且删除其已写入的数据
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh delete
::Delete a TiDB cluster
cluster name:demo
- rolling-update: 升级指定名称集群的tidb版本(zero downtime)
升级过程会把pd,tikv,tidb三个组件全部升级,防止各个组件之间的版本兼容性问题。
示例:
➜ tidb-installer git:(master) ✗ ./tioper.sh rolling-update
::Rolling update TiDB cluster with 0 downtime.
cluster name:demo
tidb version:v2.1.4
Release "ti-cluster-demo" has been upgraded. Happy Helming!
- prepare: 本地启动一个kubernetes集群
基于docker和dind启动一个本地kubernetes集群。
- restore: 清除所有的操作(删除所有的tidb cluster),关闭kubernetes集群。
执行该操作会删掉所有的执行痕迹,包括数据。