PCTA-TiDB4.0-3.2.2 K8s 部署的 TiDB 集群运维-2班-王燕辉

课程名称:课程版本(101/201/301)+ 课程名称

学习时长:1H

课程收获:

在 Kubernetes 集群上管理 TiDB 集群

课程内容:

  • 配置/升级
  • 水平/垂直扩展
    • 水平扩展
      • 通过kubectl edit tidbcluster修改副本数
      • TiDB Operator会管理好诸如leader transfer等一致性
      • 有状态应用:缩容 不等于 删除Pod
      • 通知PD集群拓扑改变
        • PD缩容(pd-controller)
          • 移除成员
          • 删除Pod
        • TiKV缩容(tikv-controller)
          • 从PD删除store
          • 等改PD驱逐leader,迁移数据
          • 在store状态变为墓碑时,删除Pod
        • 注意点
          • 由于leader发生转移或驱逐,可能比较耗时
          • TiKV副本数不应小于配置的max-replicas数
          • TiDB缩容可能会影响客户端程序
    • 垂直扩展
  • 自动failover
    • 控制器从k8s和PD周期性地收集状态数据,从而发现故障

    • TiDB Operator增加新的副本后,将其注册为新的TiKV store,然后TiKV自动转移region数据到新副本中(需要额外的资源)

    • 对于PD和TiDB来说

      • 所有Pods恢复后,新建的Pods会被移除
    • 对TiKV和TiFlash来说

      • 故障Pod恢复后,不会自动移除新建Pod,因为可能会影响新能
      • 需要手动删除新建Pod
        • 比如TiKV,spec.tikv.recoverFailover:true( TiDB Operator >= v1.1.5)后,会自动删掉新建Pod
  • 重启集群
  • 检查TiDB集群状态
    • 全局状态:kubectl get tc basic -n default
    • tc event:kubectl describe tc basic -n default
    • yaml:kubectl get tc basic -n default -o yaml
    • StatefuleSet:kubectl get statefulset -n default
    • Service:kubectl get svc
      • basic-tidb.default.svc.cluster.local
      • Pod域名:basic-tidb-0.basic-tidb-peer.default.svc.cluster.local
  • 查看TiDB集群日志
    • 查看单独Pod的日志
      • kubectl logs -n ${namespace} ${pod_name}
    • 如果 Pod包含多个容器,可以查看Pod中某个容器日志
      • kubectl logs -n ${namespace} ${pod_name} -c ${container_name}
    • 查看TiDB Operator组件的log
      • kubectl get po -n tidb-admin
      • 然后即可查看对应组件的log
    • 从3.0开始,slow log和application log分离
      • 从名称为slowlog的sidecar容器中查看slow log
        • kubectl logs -n default basic-tidb-0 -c slowlog
      • rocksdb log
        • 进入容器:kubectl exec -it -n default basic-tikv-0 sh
        • cat /var/lib/tikv/db/LOG
  • 备份和恢复
    • TiDB Operator支持以下两种备份方式
      • 全量备份:即席或周期性
      • 增量备份:当前是BR,将来用PiTR(任意时间点恢复)
    • dumpling, lightning and BR
      • dumpling:逻辑全量备份
      • lightning:使用备份数据恢复TiDB集群
      • BR:备份/恢复
      • BR备份,BR恢复
      • dumpling备份,lightning恢复
    • TiDB Operator两种备份恢复方法
      • TiDB Operator < v1.1,用Helm charts
      • = v1.1,使用CRD

    • 使用BR备份数据到S3
    • 使用dumpling备份到S3
    • 使用BR从S3恢复
    • 使用Lightning从S3恢复
    • 使用Lightning和Importer恢复
      • tikv-importer安装

        • 使用helm生成部署tikv-importer的yaml文件
          • helm repo update
          • helm search tikv-importer -l
          • helm inspect values pingcap/tikv-importer --version=v1.1.4 > values.yaml
          • vim values.yaml
          • jpg
        • 安装tikv-importer
          • helm install pingcap/tikv-importer --name=${cluster_name} --namespace=${namespace} --version=${chart_version} -f values.yaml
      • Lightning安装

        • helm inspect values pingcap/tidb-lightning --version=v1.1.4 > tidb-lightning-values.yaml
        • edit yaml
        • helm install pingcap/tidb-lightning --name=${release_name} --namespace=${namespace} --set FailFast=true --version=${chart_version} -f tidb-lightning-values.yaml
  • 监控

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。