您正在查看 KubeSphere 版本的文档:v3.0.0

KubeSphere v3.0.0 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本

在 KubeSphere 中部署 TiDB Operator 和 TiDB 集群

TiDB 是一个支持混合事务和分析处理 (HTAP) 工作负载的云原生、开源 NewSQL 数据库,具有水平扩缩性、强一致性以及高可用性。

本教程演示了如何在 KubeSphere 上部署 TiDB Operator 和 TiDB 集群。

准备工作

  • 您需要准备至少 3 个可调度的节点。
  • 您需要启用 OpenPitrix 系统
  • 您需要为本教程创建一个企业空间、一个项目和两个帐户(ws-adminproject-regular)。帐户 ws-admin 必须在企业空间中被赋予 workspace-admin 角色,帐户 project-regular 必须被邀请至项目中赋予 operator 角色。若还未创建好,请参考创建企业空间、项目、帐户和角色

动手实验

步骤 1:安装 TiDB Operator CRD

  1. admin 身份登录 KubeSphere 的 Web 控制台,使用右下角工具箱中的 Kubectl 执行以下命令来安装 TiDB Operator CRD:

    kubectl apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.1.6/manifests/crd.yaml
    
  2. 预期输出如下所示:

    customresourcedefinition.apiextensions.k8s.io/tidbclusters.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/backups.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/restores.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/backupschedules.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/tidbmonitors.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/tidbinitializers.pingcap.com created
    customresourcedefinition.apiextensions.k8s.io/tidbclusterautoscalers.pingcap.com created
    

步骤 2:添加应用仓库

  1. 登出 KubeSphere,再以 ws-admin 身份登录。在企业空间中,访问应用管理下的应用仓库,然后点击添加仓库

    add-repo

  2. 在出现的对话框中,输入 pingcap 作为应用仓库名称,输入 https://charts.pingcap.org 作为 PingCAP Helm 仓库的 URL。点击验证以验证 URL,如果可用,您将会在 URL 旁边看到一个绿色的对号。点击确定以继续。

    add-pingcap-repo

  3. 将仓库成功导入到 KubeSphere 之后,它将显示在列表中。

    added-pingcap-repo

步骤 3:部署 TiDB Operator

  1. 登出 KubeSphere,再以 project-regular 身份登录。在您的项目中,访问应用负载下的应用,点击部署新应用

    deploy-app

  2. 在出现的对话框中,选择来自应用模板

    from-app-templates

  3. 从下拉菜单中选择 pingcap,然后点击 tidb-operator

    click-tidb-operator

    备注

    本教程仅演示如何部署 TiDB Operator 和 TiDB 集群。您也可以按需部署其他工具。
  4. 配置文件选项卡,您可以直接从控制台查看配置,也可以通过点击右上角的图标以下载默认 values.yaml 文件。在版本下,从下拉菜单中选择一个版本号,点击部署

    select-version

  5. 基本信息页面,确认应用名称、应用版本以及部署位置。点击下一步以继续。

    basic-info

  6. 应用配置页面,您可以编辑 values.yaml 文件,也可以直接点击部署使用默认配置。

    check-config-file

  7. 等待 TiDB Operator 正常运行。

    tidb-operator-running

  8. 访问工作负载,可以看到为 TiDB Operator 创建的两个部署。

    tidb-deployment

步骤 4:部署 TiDB 集群

部署 TiDB 集群的过程与部署 TiDB Operator 的过程相似。

  1. 访问应用负载下的应用,再次点击部署新应用,然后选择来自应用模板

    deploy-app-again

    from-app-templates-2

  2. 在 PingCAP 仓库中,点击 tidb-cluster

    click-tidb-cluster

  3. 配置文件选项卡,可以查看配置和下载 values.yaml 文件。点击部署以继续。

    download-yaml-file

  4. 基本信息页面,确认应用名称、应用版本和部署位置。点击下一步以继续。

    tidb-cluster-info

  5. 一些 TiDB 组件需要持久卷。您可以运行以下命令查看存储类型。

    / # kubectl get sc
    NAME                       PROVISIONER     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    csi-high-capacity-legacy   csi-qingcloud   Delete          Immediate           true                   71m
    csi-high-perf              csi-qingcloud   Delete          Immediate           true                   71m
    csi-ssd-enterprise         csi-qingcloud   Delete          Immediate           true                   71m
    csi-standard (default)     csi-qingcloud   Delete          Immediate           true                   71m
    csi-super-high-perf        csi-qingcloud   Delete          Immediate           true                   71m
    
  6. 应用配置页面,将所有 storageClassName 字段的默认值从 local-storage 更改为您的存储类型名称。例如,您可以根据以上输出将这些默认值更改为 csi-standard

    tidb-cluster-config

    备注

    此处仅更改字段 storageClassName 以提供外部持久化存储。若想在单个节点上部署每个 TiDB 组件(例如 TiKVPlacement Driver),请指定 nodeAffinity 字段。
  7. 点击部署,然后就可以在列表中看到如下所示的两个应用:

    tidb-cluster-app-running

步骤 5:查看 TiDB 集群状态

  1. 访问应用负载下的工作负载,确认所有的 TiDB 集群部署都在正常运行。

    tidb-cluster-deployments-running

  2. 切换到有状态副本集选项卡,可以看到 TiDB、TiKV 和 PD 均正常运行。

    tidb-statefulsets

    备注

    TiKV 和 TiDB 会自动创建,可能要过一段时间才能在列表中显示。
  3. 点击单个有状态副本集以访问其详情页。在监控选项卡下,可以看到一段时间内以折线图显示的指标。

    TiDB 指标:

    tidb-metrics

    TiKV 指标:

    tikv-metrics

    PD 指标:

    pd-metrics

  4. 应用负载下的容器组中,可以看到 TiDB 集群包含两个 TiDB Pod、三个 TiKV Pod 和三个 PD Pod。

    tidb-pod-list

  5. 存储管理下的存储卷中,可以看到 TiKV 和 PD 都在使用持久卷。

    tidb-storage-usage

  6. 同时,也会监控存储卷的使用情况。点击一个存储卷以访问其详情页。以 TiKV 为例:

    tikv-volume-status

  7. 在项目的概览页面,可以看到当前项目的资源使用情况列表。

    tidb-project-resource-usage

步骤 6: 访问 TiDB 集群

  1. 访问应用负载下的服务,可以看到所有服务的详细信息。由于服务类型默认设置为 NodePort,因此您可以通过集群外部的 Node IP 地址进行访问。

    tidb-service

  2. TiDB 集成了 Prometheus 和 Grafana 以监控数据库集群的性能。例如,您可以通过 {$ NodeIP}:{Nodeport} 访问 Grafana 以查看指标。

    tidb-service-grafana

    tidb-grafana

    备注

    根据 Kubernetes 集群部署位置的不同,您可能需要在安全组中打开端口,并配置相关的端口转发规则。