使用 kind 在 Kubernetes 上部署 TiDB 集群

    kind 通过使用 Docker 容器作为集群节点模拟出一个本地的 Kubernetes 集群。kind 的设计初衷是为了在本地进行 Kubernetes 集群的一致性测试。Kubernetes 集群版本取决于 kind 使用的镜像,你可以指定任一镜像版本用于集群节点,并在 Docker hub 中找到想要部署的 Kubernetes 版本。

    • :版本 >= 17.03
    • helm:helm 2 或 helm 3 最新稳定版
    • :版本 >= 1.12
    • kind:版本 >= 0.7.0 建议最新版
    • 需要被设置为

    第 1 步:通过 kind 部署 Kubernetes 集群

    参考 kind 安装 kind 并创建一个集群。

    以下以 0.8.1 版本为例:

    测试集群是否创建成功:

    1. kubectl cluster-info

    参考 Helm 安装文档 安装 Helm 或使用以下命令安装最新 Helm 3 稳定版:

    1. curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

    TiDB Operator 使用 扩展 Kubernetes,所以要使用 TiDB Operator,必须先创建 TidbCluster 等各种自定义资源类型:

    1. kubectl get crd tidbclusters.pingcap.com

    安装 TiDB Operator,以下使用 Helm 3 为例:

    1. helm repo add pingcap https://charts.pingcap.org/
    2. kubectl create ns pingcap
    3. helm install --namespace pingcap tidb-operator pingcap/tidb-operator --version v1.1.0-rc.3

    若是使用 Helm 2,参考安装 Helm 初始化 Helm 后,使用以下命令部署 TiDB Operator:

    1. helm install --namespace pingcap --name tidb-operator pingcap/tidb-operator --version v1.1.0-rc.3

    查看 TiDB Operator 运行状态:

    第 3 步:部署 TiDB 集群

    1. 创建 Namespace

      1. kubectl create namespace demo
    2. 部署 TiDB 集群:

      1. kubectl apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/tidb-cluster.yaml -n demo
    3. 部署 TiDB 集群监控:

      1. kubectl apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/tidb-monitor.yaml -n demo
    4. 通过下面命令查看 Pod 状态:

      通过 kubectl port-forward 暴露服务到主机,可以访问 TiDB 集群。命令中的端口格式为:<主机端口>:<k8s 服务端口>

      • 通过 MySQL 客户端访问 TiDB

        在访问 TiDB 集群之前,请确保已安装 MySQL client。

        1. 使用 kubectl 暴露 TiDB 服务端口:

          1. kubectl port-forward svc/basic-tidb 4000:4000 --namespace=demo
        2. 然后,通过 MySQL 客户端访问 TiDB,打开一个终端标签或窗口,执行下面的命令:

        1. 使用 kubectl 暴露 Grafana 服务端口:

          1. kubectl port-forward svc/basic-grafana 3000:3000 --namespace=demo
        2. 然后,在浏览器中打开 http://localhost:3000 访问 Grafana 监控面板:

          • 默认用户名:admin
          • 默认密码:admin

      删除 TiDB 集群 与 Kubernetes 集群

      要删除 TiDB 集群,执行以下命令:

      1. kubectl delete tc basic -n demo

      要删除监控组件,执行以下命令:

      通过下面命令删除该 Kubernetes 集群: