tidb-operator部署到kubernetes集群的tidb集群,如何修改配置参数

【 TiDB 使用环境】

全部采用本地nvme存储解决方案,15台服务器的小规模集群,kubernetes版本为v1.20,tidb集群使用tidb-operator部署

【概述】:场景 + 问题概述

正在测试异地多方案,需要修改已通过tidb-operator部署的一个在线的tidb集群的一些参数,为方便说明,举一个栗子,比如需要修改server.grpc-compression-type: gzip参数,开启传输的压缩模式,减少IDC之间的流量,两地三中心部署方案已经明确了一些优化参数,我查看发现在现有的tidb集群上需要调整参数,但是文档里的是tiup的参数调整栗子,有没有tidb-operator版本的?是全部参数都支持调整还是只支持部分参数?如果是部分参数,那么现有版本的tidb-operator支持哪些参数的线上调整

【背景】:做过哪些操作

  1. 尝试使用topologySpreadConstraints替换podAntiAffinity
  2. IDC/Rack/Host级别的Label已经添加
  3. 已通过pd-ctl开启enable-placement-rules
  4. 正在尝试 Placement Rules的方式,但测试前还需要调整一些参数。

【现象】:业务和数据库现象

【问题】:当前遇到的问题

不明确如何在tidb-operator方式下调整参数

【业务影响】:阻碍方案测试,等待建议及解决方案

【TiDB 版本】:V5.1.1

【TiDB Operator 版本】:v1.2.0

【K8s 版本】:v1.20.6

2 个赞

Sorry,刚看了下,稍微还有些歧义,给一个完整的说明:
在kubernetes上通过kubectl edit tc tidb-cluster-name查看现有TiKV的配置如下:

tikv:
    baseImage: pingcap/tikv
    config: |
      prevote = true

      [storage]
        [storage.block-cache]
          capacity = "16GB"

需要添加的配置是grpc-compression-type,所以改成如下:

tikv:
    baseImage: pingcap/tikv
    config: |
      prevote = true

      [storage]
        [storage.block-cache]
          capacity = "16GB"

      [server]
        grpc-compression-type = gzip

问题:

  1. grpc-compression-type可以直接对在线的TiKV实例修改吗?是否会有tidb本身的功能造成影响,比如造成线上业务的抖动
  2. TIKV参数说明文档中所描述的参数都支持这种更新方式吗?还是只允许部分参数这样在线更新
1 个赞

是指的这里么?

https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/upgrade-a-tidb-cluster#修改-tidb-集群配置

1 个赞

额,可以理解成是一种RollingUpdate,但因为涉及的主要是异地多中心的方案,所以会具体到某一个参数,我参考的文档是:

  1. https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/configure-a-tidb-cluster

  2. https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file

  3. https://docs.pingcap.com/zh/tidb/stable/three-data-centers-in-two-cities-deployment#%E4%B8%A4%E5%9C%B0%E4%B8%89%E4%B8%AD%E5%BF%83%E9%83%A8%E7%BD%B2

  4. https://docs.pingcap.com/zh/tidb/stable/configure-placement-rules

整个方案的测试我觉得至少需要参考这四个文档,文档中的栗子是以TiUP工具来做部署和调整的,我没有找到完整的使用tidb-operatorkubernetes集群调整线上配置的说明

1 个赞

?应该是kubernetes的吧,你看看我截图

1 个赞

哦,那可以在需求板块下提个需求

1 个赞

另外,是测试的背景:

  1. 测试异地多活场景下,kubernetes集群中tidb的合适方案
  2. 多IDC的方案中,会重点测试星型拓扑,即一个中心,多地副本,因此针对PD/KV都会有权重的概念,文档里已经提及了一部分,但是场景与我目前要测试的不完全一致,也在研究中(测试可能需要覆盖IDC专线连接不稳定下观察多地业务影响的一些问题)
  3. 文档其实提及了针对部分组件在某些IDC中的配置需要单独处理,但是tidb-operator部署的时候,能针对位于不同IDC的跨地域组件的Pod进行参数修改吗?我采用一个kubernetes集群控制多地的IDC内的tidb组件副本
1 个赞

恩,目前测试的场景,应该是更细化的需求,可能是希望有一些best practise的参考

1 个赞

目前通过 tidb-operator 进行异地多活部署的案例还比较少,如果你这边有相关需求,也可以在需求版本中提下,谢谢。

好的,我去需求版提一下,多谢

另外,请问一下,类似pd和kv这种关键组件,单独配置实例参数,在operator方式下具体需要怎么操作?比如:

如果是个新问题,请记得重新发给提问

恩,好的,其实这个问题,仍然是operator配置指定的某个副本参数的问题

我怕原主题已被解决,新的追问比较容易被忽略~

这个问题暂时还没有解决,operator修改同类型组件但部署于不同IDC的实例,这种修改需要分实例配置,暂时没有找到这方面的资料,有一个tiup的设置,但在思考如何改成云原生化的方式

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