在标准 Kubernetes 上部署 TiDB 集群

本文主要描述了如何在标准的 Kubernetes 集群上通过 TiDB Operator 部署 TiDB 集群。

前置条件

部署 TiDB 集群

在部署 TiDB 集群之前,需要先配置 TiDB 集群。请参阅在 Kubernetes 中配置 TiDB 集群

配置 TiDB 集群后,请按照以下步骤部署 TiDB 集群:

  1. 创建 Namespace

    kubectl create namespace ${namespace}
  2. 部署 TiDB 集群:

    kubectl apply -f ${cluster_name} -n ${namespace}

    如果服务器没有外网,需要在有外网的机器上将 TiDB 集群用到的 Docker 镜像下载下来并上传到服务器上,然后使用 docker load 将 Docker 镜像安装到服务器上。

    部署一套 TiDB 集群会用到下面这些 Docker 镜像(假设 TiDB 集群的版本是 v7.5.3):

    pingcap/pd:v7.5.3 pingcap/tikv:v7.5.3 pingcap/tidb:v7.5.3 pingcap/tidb-binlog:v7.5.3 pingcap/ticdc:v7.5.3 pingcap/tiflash:v7.5.3 pingcap/tiproxy:latest pingcap/tidb-monitor-reloader:v1.0.1 pingcap/tidb-monitor-initializer:v7.5.3 grafana/grafana:7.5.11 prom/prometheus:v2.18.1 busybox:1.26.2

    接下来通过下面的命令将所有这些镜像下载下来:

    docker pull pingcap/pd:v7.5.3 docker pull pingcap/tikv:v7.5.3 docker pull pingcap/tidb:v7.5.3 docker pull pingcap/tidb-binlog:v7.5.3 docker pull pingcap/ticdc:v7.5.3 docker pull pingcap/tiflash:v7.5.3 docker pull pingcap/tiproxy:latest docker pull pingcap/tidb-monitor-reloader:v1.0.1 docker pull pingcap/tidb-monitor-initializer:v7.5.3 docker pull grafana/grafana:7.5.11 docker pull prom/prometheus:v2.18.1 docker pull busybox:1.26.2 docker save -o pd-v7.5.3.tar pingcap/pd:v7.5.3 docker save -o tikv-v7.5.3.tar pingcap/tikv:v7.5.3 docker save -o tidb-v7.5.3.tar pingcap/tidb:v7.5.3 docker save -o tidb-binlog-v7.5.3.tar pingcap/tidb-binlog:v7.5.3 docker save -o ticdc-v7.5.3.tar pingcap/ticdc:v7.5.3 docker save -o tiproxy-latest.tar pingcap/tiproxy:latest docker save -o tiflash-v7.5.3.tar pingcap/tiflash:v7.5.3 docker save -o tidb-monitor-reloader-v1.0.1.tar pingcap/tidb-monitor-reloader:v1.0.1 docker save -o tidb-monitor-initializer-v7.5.3.tar pingcap/tidb-monitor-initializer:v7.5.3 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-v7.5.3.tar docker load -i tikv-v7.5.3.tar docker load -i tidb-v7.5.3.tar docker load -i tidb-binlog-v7.5.3.tar docker load -i ticdc-v7.5.3.tar docker load -i tiproxy-latest.tar docker load -i tiflash-v7.5.3.tar docker load -i tidb-monitor-reloader-v1.0.1.tar docker load -i tidb-monitor-initializer-v7.5.3.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
  3. 通过下面命令查看 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 各组件默认将日志输出到容器的 stdoutstderr 中,并依据容器运行时环境自动进行日志的滚动清理。当 Pod 重启时,容器日志会丢失。为防止日志丢失,建议收集 TiDB 及相关组件日志

文档内容是否有帮助?