在标准 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 集群的版本是 v5.0.6):

    pingcap/pd:v5.0.6 pingcap/tikv:v5.0.6 pingcap/tidb:v5.0.6 pingcap/tidb-binlog:v5.0.6 pingcap/ticdc:v5.0.6 pingcap/tiflash:v5.0.6 pingcap/tidb-monitor-reloader:v1.0.1 pingcap/tidb-monitor-initializer:v5.0.6 grafana/grafana:6.0.1 prom/prometheus:v2.18.1 busybox:1.26.2

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

    docker pull pingcap/pd:v5.0.6 docker pull pingcap/tikv:v5.0.6 docker pull pingcap/tidb:v5.0.6 docker pull pingcap/tidb-binlog:v5.0.6 docker pull pingcap/ticdc:v5.0.6 docker pull pingcap/tiflash:v5.0.6 docker pull pingcap/tidb-monitor-reloader:v1.0.1 docker pull pingcap/tidb-monitor-initializer:v5.0.6 docker pull grafana/grafana:6.0.1 docker pull prom/prometheus:v2.18.1 docker pull busybox:1.26.2 docker save -o pd-v5.0.6.tar pingcap/pd:v5.0.6 docker save -o tikv-v5.0.6.tar pingcap/tikv:v5.0.6 docker save -o tidb-v5.0.6.tar pingcap/tidb:v5.0.6 docker save -o tidb-binlog-v5.0.6.tar pingcap/tidb-binlog:v5.0.6 docker save -o ticdc-v5.0.6.tar pingcap/ticdc:v5.0.6 docker save -o tiflash-v5.0.6.tar pingcap/tiflash:v5.0.6 docker save -o tidb-monitor-reloader-v1.0.1.tar pingcap/tidb-monitor-reloader:v1.0.1 docker save -o tidb-monitor-initializer-v5.0.6.tar pingcap/tidb-monitor-initializer:v5.0.6 docker save -o grafana-6.0.1.tar grafana/grafana:6.0.1 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-v5.0.6.tar docker load -i tikv-v5.0.6.tar docker load -i tidb-v5.0.6.tar docker load -i tidb-binlog-v5.0.6.tar docker load -i ticdc-v5.0.6.tar docker load -i tiflash-v5.0.6.tar docker load -i tidb-monitor-reloader-v1.0.1.tar docker load -i tidb-monitor-initializer-v5.0.6.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 上的集群初始化配置进行配置。