首页 > 其他分享 >k8s上的 部署TiDB 集群

k8s上的 部署TiDB 集群

时间:2022-10-15 19:24:00浏览次数:77  
标签:pingcap TiDB 集群 tidb operator k8s com

k8s上的 部署TiDB 集群

一、k8s环境准备

二、k8s上部署TiDB

2.1、部署StorageClass-nfs方案

  • sc种类很多,模拟的话此处就有较为简单的nfs类型的sc
# nfs部署方案
https://www.cnblogs.com/hsyw/p/13610960.html

# nfs类型的sc部署方案
https://github.com/tzh666/k8s-infra/tree/main/StorageClass/NFS

2.2、SC

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: tidb-sc
provisioner: fuseim.pri/ifs
parameters:
  archiveOnDelete: "false"   # 设置为"false"时删除PVC不会保留数据,"true"则保留数据

2.3、部署helm

Kubernetes 应用在 Helm 中被打包为 chart。PingCAP 针对 Kubernetes 上的 TiDB 部署运维提供了多个 Helm chart:

  • tidb-operator:用于部署 TiDB Operator;
  • tidb-cluster:用于部署 TiDB 集群;
  • tidb-backup:用于 TiDB 集群备份恢复;
  • tidb-lightning:用于 TiDB 集群导入数据;
  • tidb-drainer:用于部署 TiDB Drainer;
  • tikv-importer:用于部署 TiKV Importer;
# 1、下载
[root@k8s-master01 ~]# wget https://get.helm.sh/helm-v3.4.2-linux-amd64.tar.gz

# 2、安装
[root@k8s-master01 ~]# tar -zxvf helm-v3.4.2-linux-amd64.tar.gz 
[root@k8s-master01 ~]# mv linux-amd64/helm /usr/local/bin/helm

# 3、使用添加helmPingCAP的提供的 chart
helm repo add pingcap https://charts.pingcap.org/

# 4、查看是否添加成功
[root@k8s-master01 infra]# helm repo list
NAME            URL                                       
pingcap         https://charts.pingcap.org/

# 5、添加完成后,可以使用 helm search 搜索 PingCAP 提供的 chart:
[root@k8s-master01 infra]# helm search repo pingcap
NAME                    CHART VERSION   APP VERSION     DESCRIPTION                            
pingcap/diag            v1.1.0          v1.1.0          clinic diag Helm chart for Kubernetes  
pingcap/tidb-backup     v1.3.9                          A Helm chart for TiDB Backup or Restore
pingcap/tidb-cluster    v1.3.9                          A Helm chart for TiDB Cluster          
pingcap/tidb-drainer    v1.3.9                          A Helm chart for TiDB Binlog drainer.  
pingcap/tidb-lightning  v1.3.9                          A Helm chart for TiDB Lightning        
pingcap/tidb-operator   v1.3.9          v1.3.9          tidb-operator Helm chart for Kubernetes
pingcap/tikv-importer   v1.3.9                          A Helm chart for TiKV Importer         
pingcap/tikv-operator   v0.1.0          v0.1.0          A Helm chart for Kubernetes           

2.4、部署TiDB Operator

  • 注意
    • 对于 Kubernetes 1.16 之前的版本,Kubernetes 仅支持 v1beta1 版本的 CRD,你需要将上述命令中的 crd.yaml 修改为 crd_v1beta1.yaml
# 1、下载配置文件
wget https://raw.githubusercontent.com/pingcap/tidb-operator/v1.3.9/manifests/crd.yaml
[root@k8s-master01 tidb]# kubectl create -f ./crd.yaml
customresourcedefinition.apiextensions.k8s.io/backupschedules.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/backups.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/dmclusters.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/restores.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/tidbclusterautoscalers.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/tidbclusters.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/tidbinitializers.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/tidbmonitors.pingcap.com created
customresourcedefinition.apiextensions.k8s.io/tidbngmonitorings.pingcap.com created

# 如果显示如下信息表示 CRD 安装成功:
kubectl get crd
NAME                                 CREATED AT
backups.pingcap.com                  2020-06-11T07:59:40Z
backupschedules.pingcap.com          2020-06-11T07:59:41Z
restores.pingcap.com                 2020-06-11T07:59:40Z
tidbclusterautoscalers.pingcap.com   2020-06-11T07:59:42Z
tidbclusters.pingcap.com             2020-06-11T07:59:38Z
tidbinitializers.pingcap.com         2020-06-11T07:59:42Z
tidbmonitors.pingcap.com             2020-06-11T07:59:41Z

# 2、创建命名空间
kubectl create namespace tidb-admin

# 3、安装 TiDB Operator
helm install --namespace tidb-admin tidb-operator pingcap/tidb-operator --version v1.3.9 \
    --set operatorImage=registry.cn-beijing.aliyuncs.com/tidb/tidb-operator:v1.3.9 \
    --set tidbBackupManagerImage=registry.cn-beijing.aliyuncs.com/tidb/tidb-backup-manager:v1.3.9 \
    --set scheduler.kubeSchedulerImageName=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler

NAME: tidb-operator
LAST DEPLOYED: Sat Oct 15 17:11:22 2022
NAMESPACE: tidb-admin
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Make sure tidb-operator components are running:

    kubectl get pods --namespace tidb-admin -l app.kubernetes.io/instance=tidb-operator
# 4、查看部署结果
[root@k8s-master01 tidb]# kubectl get pods --namespace tidb-admin -l app.kubernetes.io/instance=tidb-operator
NAME                                       READY   STATUS    RESTARTS   AGE
tidb-controller-manager-7cf8b6f894-lhqms   1/1     Running   0          4m58s
tidb-scheduler-585fd9f8f-4rm65             2/2     Running   0          4m58s

2.5、安装TiDB集群

  • 需要改StorageClass名字,改成上门自己创建的名字
  • PV 一般由系统管理员或 volume provisioner 自动创建,PV 与 Pod 是通过 PersistentVolumeClaim (PVC) 进行关联的
  • 普通用户在使用 PV 时并不需要直接创建 PV,而是通过 PVC 来申请使用 PV,对应的 volume provisioner 根据 PVC 创建符合要求的 PV,并将 PVC 与该 PV 进行绑定
  • 这玩意不合适在生产上使用,需要修改配置后才能上生产,例如修改调度、存储大小、副本个数等
wget https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/tidb-cluster.yaml

kubectl create namespace tidb-cluster && kubectl apply  -n  tidb-cluster -f tidb-cluster.yaml

# 如果访问 Docker Hub 网速较慢,可以使用 UCloud 上的镜像:
kubectl create namespace tidb-cluster && \
    kubectl -n tidb-cluster apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic-cn/tidb-cluster.yaml

2.6、部署 TiDB 集群监控

# 如果访问 Docker Hub 网速较慢,可以使用 UCloud 上的镜像:
kubectl -n tidb-cluster apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic-cn/tidb-monitor.yaml

2.7、查看 Pod 状态

watch kubectl get po -n tidb-cluster

参考官网:

https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/prerequisites

https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/get-started#%E7%AC%AC-2-%E6%AD%A5%E9%83%A8%E7%BD%B2-tidb-operator

标签:pingcap,TiDB,集群,tidb,operator,k8s,com
From: https://www.cnblogs.com/hsyw/p/16794825.html

相关文章

  • docker和k8s
    docker仓库地址https://hub.docker.com/常用命令dockerpullmongodockerimagesdockerupdatecontainer-name--restart=alwaysdockercprabbitmq_delayed_mes......
  • 【翻译】Raft 共识算法:集群成员变更
    转载请注明出处:https://www.cnblogs.com/morningli/p/16770129.html之前都在集群配置是固定的(参与共识算法的server集合)假设下讨论raft。在实践中,偶尔有需要改变配置,比如......
  • k8s将dockershim移除之后,如何继续使用docker?
     从哪里移除 说说这个前提,就是k8s宣布将dockershim给移除了这么个点 为什么要移除说白了,就是k8s是想建立标准的,通过的CRI,容器运行的接口,不仅仅可以支持d......
  • k8s 配置 harbor仓库
    1.K8S在默认情况下只能拉取Harbor仓库中的公有镜像,拉取私有镜像会报错:ErrImagePull 或 ImagePullBackOff2.在每台服务器上配置harbor的地址,修改或创建/etc/docker/daemo......
  • tidb部署
    一、TiDB的由来1.1、时代基于,数据量爆炸性增长于数据库架构现状的矛盾据IDC预测,2020年有超过500亿的终端与设备联网,而有50%的物联网网络将面临网络带宽的限制,40%的数据......
  • k8s之Calico
      之前接触过calico,但是kubernetes中的calico为什么是calico-kube-controllers、calico-node、calico-typha,为什么和想象的组件不一样。查资料后,知道了为什么,特总结下......
  • Mariadb+Galera+MaxScale读写分离集群配置
    部署环境:node-01:10.0.1.10centos7.6                                 node-02:10.0.1.11 centos7.6......
  • 如何锁定swarm集群?
    0、导读看到这个问题,是不是觉得很奇怪? 为啥要锁定swarm集群呢? 你一听就明白了,在swarm集群中,raftlog存储的是加密的数据,主要是secret相关的数据,raftlog数据在集群......
  • 通过kubeadm搭建k8s集群
    ======通过kubeadm搭建k8s集群======1、版本统一Docker18.09.0---kubeadm-1.14.0-0kubelet-1.14.0-0kubectl-1.14.0-0---k8s.gcr.io/kube-......
  • K8S and Rancher安装
    ========节点1===============================安装dockersudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2sudoyum-config-manager--add-repohttp:/......