在标准 Kubernetes 上部署 TiDB 集群
本文主要描述了如何在标准的 Kubernetes 集群上通过 TiDB Operator 部署 TiDB 集群。
前置条件
- TiDB Operator 部署完成。
部署 TiDB 集群
在部署 TiDB 集群之前,需要先配置 TiDB 集群。请参阅在 Kubernetes 中配置 TiDB 集群。
配置 TiDB 集群后,请按照以下步骤部署 TiDB 集群:
创建
Namespace
:kubectl create namespace ${namespace}部署 TiDB 集群:
kubectl apply -f ${cluster_name} -n ${namespace}如果服务器没有外网,需要在有外网的机器上将 TiDB 集群用到的 Docker 镜像下载下来并上传到服务器上,然后使用
docker load
将 Docker 镜像安装到服务器上。部署一套 TiDB 集群会用到下面这些 Docker 镜像(假设 TiDB 集群的版本是 v8.1.0):
pingcap/pd:v8.1.0 pingcap/tikv:v8.1.0 pingcap/tidb:v8.1.0 pingcap/tidb-binlog:v8.1.0 pingcap/ticdc:v8.1.0 pingcap/tiflash:v8.1.0 pingcap/tiproxy:latest pingcap/tidb-monitor-reloader:v1.0.1 pingcap/tidb-monitor-initializer:v8.1.0 grafana/grafana:7.5.11 prom/prometheus:v2.18.1 busybox:1.26.2接下来通过下面的命令将所有这些镜像下载下来:
docker pull pingcap/pd:v8.1.0 docker pull pingcap/tikv:v8.1.0 docker pull pingcap/tidb:v8.1.0 docker pull pingcap/tidb-binlog:v8.1.0 docker pull pingcap/ticdc:v8.1.0 docker pull pingcap/tiflash:v8.1.0 docker pull pingcap/tiproxy:latest docker pull pingcap/tidb-monitor-reloader:v1.0.1 docker pull pingcap/tidb-monitor-initializer:v8.1.0 docker pull grafana/grafana:7.5.11 docker pull prom/prometheus:v2.18.1 docker pull busybox:1.26.2 docker save -o pd-v8.1.0.tar pingcap/pd:v8.1.0 docker save -o tikv-v8.1.0.tar pingcap/tikv:v8.1.0 docker save -o tidb-v8.1.0.tar pingcap/tidb:v8.1.0 docker save -o tidb-binlog-v8.1.0.tar pingcap/tidb-binlog:v8.1.0 docker save -o ticdc-v8.1.0.tar pingcap/ticdc:v8.1.0 docker save -o tiproxy-latest.tar pingcap/tiproxy:latest docker save -o tiflash-v8.1.0.tar pingcap/tiflash:v8.1.0 docker save -o tidb-monitor-reloader-v1.0.1.tar pingcap/tidb-monitor-reloader:v1.0.1 docker save -o tidb-monitor-initializer-v8.1.0.tar pingcap/tidb-monitor-initializer:v8.1.0 docker save -o grafana-6.0.1.tar grafana/grafana:7.5.11 docker save -o prometheus-v2.18.1.tar prom/prometheus:v2.18.1 docker save -o busybox-1.26.2.tar busybox:1.26.2接下来将这些 Docker 镜像上传到服务器上,并执行
docker load
将这些 Docker 镜像安装到服务器上:docker load -i pd-v8.1.0.tar docker load -i tikv-v8.1.0.tar docker load -i tidb-v8.1.0.tar docker load -i tidb-binlog-v8.1.0.tar docker load -i ticdc-v8.1.0.tar docker load -i tiproxy-latest.tar docker load -i tiflash-v8.1.0.tar docker load -i tidb-monitor-reloader-v1.0.1.tar docker load -i tidb-monitor-initializer-v8.1.0.tar docker load -i grafana-6.0.1.tar docker load -i prometheus-v2.18.1.tar docker load -i busybox-1.26.2.tar通过下面命令查看 Pod 状态:
kubectl get po -n ${namespace} -l app.kubernetes.io/instance=${cluster_name}
单个 Kubernetes 集群中可以利用 TiDB Operator 部署管理多套 TiDB 集群,重复以上步骤并将 cluster_name
替换成不同名字即可。不同集群既可以在相同 namespace
中,也可以在不同 namespace
中,可根据实际需求进行选择。
初始化 TiDB 集群
如果要在部署完 TiDB 集群后做一些初始化工作,参考 Kubernetes 上的集群初始化配置进行配置。
配置 TiDB 监控
请参阅部署 TiDB 集群监控与告警。
收集日志
系统与程序的运行日志对排查问题和实现自动化操作可能非常有用。TiDB 各组件默认将日志输出到容器的 stdout
和 stderr
中,并依据容器运行时环境自动进行日志的滚动清理。当 Pod 重启时,容器日志会丢失。为防止日志丢失,建议收集 TiDB 及相关组件日志。