kubesphere部署tidb云原生分布式数据库

TiDB简介

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
在这里插入图片描述

kubeSphere简介

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

在这里插入图片描述

部署环境准备

KubeSphere是青云开源的容器平台,除了支持在本地kubernetes集群独立部署外,青云公有云上也支持一键部署kubesphere,并且与开源版本相比操作界面和功能体验完全一致。

下面以在青云环境快速启用容器平台为例部署tidb分布式数据库,至少需要准备3个可调度的node节点。

登录青云控制台:https://console.qingcloud.com/

点击左侧容器平台,选择KubeSphere,点击创建并选择合适的集群规格:

在这里插入图片描述

创建完成后登录到kubesphere管理界面:

在这里插入图片描述
点击下方的kubectl集群客户端命令行工具,连接到命令行界面;

执行以下命令安装TiDB Operator CRD:

kubectl apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.1.6/manifests/crd.yaml

执行结果如下:

在这里插入图片描述
点击左上角平台管理,选择访问控制,新建企业空间,这里命名为dev-workspace

在这里插入图片描述
进入企业空间,选择应用仓库,添加仓库

在这里插入图片描述
将pingcap官方helm仓库添加到容器平台,地址如下:

https://charts.pingcap.org

添加方式如下:

在这里插入图片描述

部署tidb-operator

tidb部署参考:

https://github.com/pingcap/docs-tidb-operator/blob/master/zh/get-started.md
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/prerequisites/

首选创建项目(namespace)用于运行tidb集群:

在这里插入图片描述
创建完成后点击进入项目,选择应用,部署新应用

在这里插入图片描述
选择来自应用模板:

在这里插入图片描述
切换到pingcap,该仓库包含了多个helm chart,当前主要部署tidb-operator和tidb-cluster,其他为辅助工具,可自行视情况部署。

在这里插入图片描述
点击tidb-operator进入chat,点击配置文件可查看或下载默认的values.yaml,选择版本,点击部署:

在这里插入图片描述

配置应用名称并选择应用版本,确认应用部署位置:

在这里插入图片描述
继续下一步,该步骤可以直接编辑values.yaml文件,自定义配置,当前默认即可:

在这里插入图片描述

点击部署,等待应用状态变为活跃:

在这里插入图片描述

点击工作负载(deployment),查看tidb-operator部署了2个deployment类型资源:

在这里插入图片描述

部署tidb-cluster

tidb-operator部署完成后可以继续部署tidb-cluster。

与部署tidb-operator操作相同,选择左侧应用,点击tidb-cluster:

在这里插入图片描述
切换到配置文件,选择版本,下载values.yaml到本地:

在这里插入图片描述

TiDB cluster中部分组件需要持久存储卷,青云平台提供了以下类型storageclass:

/ # kubectl get sc
NAME                       PROVISIONER     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
csi-high-capacity-legacy   csi-qingcloud   Delete          Immediate           true                   101m
csi-high-perf              csi-qingcloud   Delete          Immediate           true                   101m
csi-ssd-enterprise         csi-qingcloud   Delete          Immediate           true                   101m
csi-standard (default)     csi-qingcloud   Delete          Immediate           true                   101m
csi-super-high-perf        csi-qingcloud   Delete          Immediate           true                   101m

这里选择csi-standard类型,values.yaml中的storageClassName字段默认配置为local-storage。

在下载的yaml文件中直接替换所有的local-storage字段为csi-standard,。

在最后一步使用修改后的values.yaml覆盖应用配置文本框中的内容,当然也可以手动编辑配置文件逐个替换:

在这里插入图片描述

这里仅修改storageClassName字段用于引用外部持久存储,如果需要将tidb、tikv或pd组件调度到独立节点,可参考nodeAffinity相关参数进行修改。

点击部署,将tidb cluster部署到容器平台,最终在应用列表中可以看到如下2个应用:

在这里插入图片描述

查看tidb集群状态

tidb集群部署后需要一定时间完成初始化,选择工作负载,查看无状态应用:

在这里插入图片描述

查看有状态副本集(statefulset),其中tidb、tikv和pd都为有状态应用:

在这里插入图片描述
查看tidb负载情况:

在这里插入图片描述
查看tikv负载情况:

在这里插入图片描述

查看容器组(pod),tidb集群包含了3个pd、2个tidb以及3个tikv:
在这里插入图片描述

点击存储管理,查看存储卷,其中tikv和pd这2个组件使用了持久存储:
在这里插入图片描述

查看某个存储卷用量信息,以tikv为例:

在这里插入图片描述
tidb-cluster项目中资源用量排行:
在这里插入图片描述

访问tidb集群

点击左侧服务,查看tibd集群创建和暴露的服务信息

在这里插入图片描述
其中tidb 4000端口绑定的服务类型为nodeport,直接可以在集群外通过nodeIP访问.

测试使用mysql客户端连接数据库

[root@k8s-master1 ~]# docker run -it --rm mysql bash

[root@0d7cf9d2173e:/# mysql -h 192.168.1.102 -P 32682 -u root    
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 201
Server version: 5.7.25-TiDB-v4.0.6 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.01 sec)

mysql> 

另外tidb 自带了prometheus和grafana,用于数据库集群的性能监控,可以看到grafana的serivce 3000端口同样绑定了nodeport端口;

访问grafana UI,查看某个指标:

在这里插入图片描述

上传TiDB到应用商店

添加公网 helm 仓库到kubesphere容器平台适合有外网访问权限的情况,kubesphere也支持上传打包后的helm chat配置文件。

安装helm工具

version=v3.3.1
curl -LO https://repo.huaweicloud.com/helm/${version}/helm-${version}-linux-amd64.tar.gz
tar -zxvf helm-${version}-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm && rm -rf linux-amd64

添加pingcap tidb helm仓库

helm repo add pingcap https://charts.pingcap.org/

查看helm仓库包含的组件

# helm search repo pingcap --version=v1.1.6
NAME                    CHART VERSION   APP VERSION     DESCRIPTION                            
pingcap/tidb-backup     v1.1.6                          A Helm chart for TiDB Backup or Restore
pingcap/tidb-cluster    v1.1.6                          A Helm chart for TiDB Cluster          
pingcap/tidb-drainer    v1.1.6                          A Helm chart for TiDB Binlog drainer.  
pingcap/tidb-lightning  v1.1.6                          A Helm chart for TiDB Lightning        
pingcap/tidb-operator   v1.1.6          v1.1.6          tidb-operator Helm chart for Kubernetes
pingcap/tikv-importer   release-1.1                     A Helm chart for TiKV Importer

下载需要的chats到本地:

helm pull pingcap/tidb-operator --version=v1.1.6
helm pull pingcap/tidb-cluster --version=v1.1.6

查看拉取到本地的helm chart:

# ls | grep tidb
tidb-cluster-v1.1.6.tgz
tidb-operator-v1.1.6.tgz

登录kubesphere web console,点击工作台,选择访问控制,进入企业空间,选择应用管理,应用模板,上传模板:

在这里插入图片描述

上传完成后如下图:

在这里插入图片描述

此时在选择应用部署时选择来自企业空间即可,部署方式与导入helm仓库一致:
在这里插入图片描述

手动上传的helm chat 还支持发布到应用商店,共享给其他企业空间或项目使用,流程如下:

点击应用模板,选择tidb应用,展开后点击提交审核:

在这里插入图片描述
切换到管理员用户,点击左上角平台管理,应用商店管理
在这里插入图片描述
选择应用审核,选择右侧审核通过:

在这里插入图片描述
再次回到普通用户,选择应用模板,进入tidb应用,展开发现此时应用可以发布到商店

在这里插入图片描述
发布后点击左上角应用商店,在应用商店中即可看到上架的tidb应用:

在这里插入图片描述
备注:
TiDB可以结合kubesphere多集群联邦功能,部署应用时可一键分发tidb组件副本到不同集群,实现跨集群、跨区域高可用。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值