tidb-cluster chart 配置
优质
小牛编辑
134浏览
2023-12-01
本文介绍 tidb-cluster chart 配置。
注意:
对于 TiDBOperator v1.1 及以上版本,不再建议使用 tidb-cluster chart 部署、管理 TiDB 集群,详细信息请参考 TiDB Operator v1.1 重要注意事项。
配置参数
参数名 | 说明 | 默认值 |
---|---|---|
rbac.create | 是否启用 Kubernetes 的 RBAC | true |
clusterName | TiDB 集群名,默认不设置该变量,tidb-cluster 会直接用执行安装时的 ReleaseName 代替 | nil |
extraLabels | 添加额外的 labels 到 TidbCluster 对象 (CRD) 上,参考:labels | {} |
schedulerName | TiDB 集群使用的调度器 | tidb-scheduler |
timezone | TiDB 集群默认时区 | UTC |
pvReclaimPolicy | TiDB 集群使用的 PV (Persistent Volume) 的 reclaim policy | Retain |
services[0].name | TiDB 集群对外暴露服务的名字 | nil |
services[0].type | TiDB 集群对外暴露服务的类型,(从 ClusterIP 、NodePort 、LoadBalancer 中选择) | nil |
discovery.image | TiDB 集群 PD 服务发现组件的镜像,该组件用于在 PD 集群第一次启动时,为各个 PD 实例提供服务发现功能以协调启动顺序 | pingcap/tidb-operator:v1.0.0-beta.3 |
discovery.imagePullPolicy | PD 服务发现组件镜像的拉取策略 | IfNotPresent |
discovery.resources.limits.cpu | PD 服务发现组件的 CPU 资源限额 | 250m |
discovery.resources.limits.memory | PD 服务发现组件的内存资源限额 | 150Mi |
discovery.resources.requests.cpu | PD 服务发现组件的 CPU 资源请求 | 80m |
discovery.resources.requests.memory | PD 服务发现组件的内存资源请求 | 50Mi |
enableConfigMapRollout | 是否开启 TiDB 集群自动滚动更新。如果启用,则 TiDB 集群的 ConfigMap 变更时,TiDB 集群自动更新对应组件。该配置只在 TiDB Operator v1.0 及以上版本才支持 | false |
pd.config | 配置文件格式的 PD 的配置,请参考 pd/conf/config.toml 查看默认 PD 配置文件(选择对应 PD 版本的 tag),可以参考 PD 配置文件描述查看配置参数的具体介绍(请选择对应的文档版本),这里只需要按照配置文件中的格式修改配置 | TiDB Operator 版本 <= v1.0.0-beta.3,默认值为:nil TiDB Operator 版本 > v1.0.0-beta.3,默认值为: [log] level = "info" [replication] location-labels = ["region", "zone", "rack", "host"] 配置示例: config: |[log] level = "info" [replication] location-labels = ["region", "zone", "rack", "host"] |
pd.replicas | PD 的 Pod 数 | 3 |
pd.image | PD 镜像 | pingcap/pd:v3.0.0-rc.1 |
pd.imagePullPolicy | PD 镜像的拉取策略 | IfNotPresent |
pd.logLevel | PD 日志级别。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 pd.config 配置:[log] level = "info" | info |
pd.storageClassName | PD 使用的 storageClass,storageClassName 指代一种由 Kubernetes 集群提供的存储类型,不同的类可能映射到服务质量级别、备份策略或集群管理员确定的任意策略。详细参考:storage-classes | local-storage |
pd.maxStoreDownTime | pd.maxStoreDownTime 指一个 store 节点断开连接多长时间后状态会被标记为 down ,当状态变为 down 后,store 节点开始迁移数据到其它 store 节点如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 pd.config 配置:[schedule] max-store-down-time = "30m" | 30m |
pd.maxReplicas | pd.maxReplicas 是 TiDB 集群的数据的副本数。如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 pd.config 配置:[replication] max-replicas = 3 | 3 |
pd.resources.limits.cpu | 每个 PD Pod 的 CPU 资源限额 | nil |
pd.resources.limits.memory | 每个 PD Pod 的内存资源限额 | nil |
pd.resources.limits.storage | 每个 PD Pod 的存储容量限额 | nil |
pd.resources.requests.cpu | 每个 PD Pod 的 CPU 资源请求 | nil |
pd.resources.requests.memory | 每个 PD Pod 的内存资源请求 | nil |
pd.resources.requests.storage | 每个 PD Pod 的存储容量请求 | 1Gi |
pd.affinity | pd.affinity 定义 PD 的调度规则和偏好,详细请参考:affinity-and-anti-affinity | {} |
pd.nodeSelector | pd.nodeSelector 确保 PD Pods 只调度到以该键值对作为标签的节点,详情参考:nodeselector | {} |
pd.tolerations | pd.tolerations 应用于 PD Pods,允许 PD Pods 调度到含有指定 taints 的节点上,详情参考:taint-and-toleration | {} |
pd.annotations | 为 PD Pods 添加特定的 annotations | {} |
tikv.config | 配置文件格式的 TiKV 的配置,请参考 tikv/etc/config-template.toml 查看默认 TiKV 配置文件(选择对应 TiKV 版本的 tag),可以参考 TiKV 配置文件描述查看配置参数的具体介绍(请选择对应的文档版本),这里只需要按照配置文件中的格式修改配置。以下两个配置项需要显式配置: [storage.block-cache] shared = true capacity = "1GB" 推荐设置: capacity 设置为 tikv.resources.limits.memory 的 50%[readpool.coprocessor] high-concurrency = 8 normal-concurrency = 8 low-concurrency = 8 推荐设置:设置为 tikv.resources.limits.cpu 的 80% | TiDB Operator 版本 <= v1.0.0-beta.3,默认值为:nil TiDB Operator 版本 > v1.0.0-beta.3,默认值为: log-level = "info" 配置示例: config: |log-level = "info" |
tikv.replicas | TiKV 的 Pod 数 | 3 |
tikv.image | TiKV 的镜像 | pingcap/tikv:v3.0.0-rc.1 |
tikv.imagePullPolicy | TiKV 镜像的拉取策略 | IfNotPresent |
tikv.logLevel | TiKV 的日志级别 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:log-level = "info" | info |
tikv.storageClassName | TiKV 使用的 storageClass,storageClassName 指代一种由 Kubernetes 集群提供的存储类型,不同的类可能映射到服务质量级别、备份策略或集群管理员确定的任意策略。详细参考:storage-classes | local-storage |
tikv.syncLog | syncLog 指是否启用 raft 日志同步功能,启用该功能能保证在断电时数据不丢失。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[raftstore] sync-log = true | true |
tikv.grpcConcurrency | 配置 gRPC server 线程池大小。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[server] grpc-concurrency = 4 | 4 |
tikv.resources.limits.cpu | 每个 TiKV Pod 的 CPU 资源限额 | nil |
tikv.resources.limits.memory | 每个 TiKV Pod 的内存资源限额 | nil |
tikv.resources.limits.storage | 每个 TiKV Pod 的存储容量限额 | nil |
tikv.resources.requests.cpu | 每个 TiKV Pod 的 CPU 资源请求 | nil |
tikv.resources.requests.memory | 每个 TiKV Pod 的内存资源请求 | nil |
tikv.resources.requests.storage | 每个 TiKV Pod 的存储容量请求 | 10Gi |
tikv.affinity | tikv.affinity 定义 TiKV 的调度规则和偏好,详细请参考:affinity-and-anti-affinity | {} |
tikv.nodeSelector | tikv.nodeSelector 确保 TiKV Pods 只调度到以该键值对作为标签的节点,详情参考:nodeselector | {} |
tikv.tolerations | tikv.tolerations 应用于 TiKV Pods,允许 TiKV Pods 调度到含有指定 taints 的节点上,详情参考:taint-and-toleration | {} |
tikv.annotations | 为 TiKV Pods 添加特定的 annotations | {} |
tikv.defaultcfBlockCacheSize | 指定 block 缓存大小,block 缓存用于缓存未压缩的 block,较大的 block 缓存设置可以加快读取速度。一般推荐设置为 tikv.resources.limits.memory 的 30%-50%如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[rocksdb.defaultcf] block-cache-size = "1GB" 从 TiKV v3.0.0 开始,不再需要配置 [rocksdb.defaultcf].block-cache-size 和 [rocksdb.writecf].block-cache-size ,改为配置 [storage.block-cache].capacity | 1GB |
tikv.writecfBlockCacheSize | 指定 writecf 的 block 缓存大小,一般推荐设置为 tikv.resources.limits.memory 的 10%-30%如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[rocksdb.writecf] block-cache-size = "256MB" 从 TiKV v3.0.0 开始,不再需要配置 [rocksdb.defaultcf].block-cache-size 和 [rocksdb.writecf].block-cache-size ,改为配置 [storage.block-cache].capacity | 256MB |
tikv.readpoolStorageConcurrency | TiKV 存储的高优先级/普通优先级/低优先级操作的线程池大小 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[readpool.storage] high-concurrency = 4 normal-concurrency = 4 low-concurrency = 4 | 4 |
tikv.readpoolCoprocessorConcurrency | 一般如果 tikv.resources.limits.cpu > 8,则 tikv.readpoolCoprocessorConcurrency 设置为tikv.resources.limits.cpu * 0.8如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[readpool.coprocessor] high-concurrency = 8 normal-concurrency = 8 low-concurrency = 8 | 8 |
tikv.storageSchedulerWorkerPoolSize | TiKV 调度程序的工作池大小,应在重写情况下增加,同时应小于总 CPU 核心。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tikv.config 配置:[storage] scheduler-worker-pool-size = 4 | 4 |
tidb.config | 配置文件格式的 TiDB 的配置,请参考配置文件查看默认 TiDB 配置文件(选择对应 TiDB 版本的 tag),可以参考 TiDB 配置文件描述查看配置参数的具体介绍(请选择对应的文档版本)。这里只需要按照配置文件中的格式修改配置。 以下配置项需要显式配置: [performance] max-procs = 0 推荐设置: max-procs 设置为 tidb.resources.limits.cpu 对应的核心数 | TiDB Operator 版本 <= v1.0.0-beta.3,默认值为:nil TiDB Operator 版本 > v1.0.0-beta.3,默认值为: [log] level = "info" 配置示例: config: |[log] level = "info" |
tidb.replicas | TiDB 的 Pod 数 | 2 |
tidb.image | TiDB 的镜像 | pingcap/tidb:v3.0.0-rc.1 |
tidb.imagePullPolicy | TiDB 镜像的拉取策略 | IfNotPresent |
tidb.logLevel | TiDB 的日志级别。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[log] level = "info" | info |
tidb.resources.limits.cpu | 每个 TiDB Pod 的 CPU 资源限额 | nil |
tidb.resources.limits.memory | 每个 TiDB Pod 的内存资源限额 | nil |
tidb.resources.requests.cpu | 每个 TiDB Pod 的 CPU 资源请求 | nil |
tidb.resources.requests.memory | 每个 TiDB Pod 的内存资源请求 | nil |
tidb.passwordSecretName | 存放 TiDB 用户名及密码的 Secret 的名字,该 Secret 可以使用以下命令创建机密:kubectl create secret generic tidb secret--from literal=root=${password}--namespace=${namespace} ,如果没有设置,则 TiDB 根密码为空 | nil |
tidb.initSql | 在 TiDB 集群启动成功后,会执行的初始化脚本 | nil |
tidb.affinity | tidb.affinity 定义 TiDB 的调度规则和偏好,详细请参考:affinity-and-anti-affinity | {} |
tidb.nodeSelector | tidb.nodeSelector 确保 TiDB Pods 只调度到以该键值对作为标签的节点,详情参考:nodeselector | {} |
tidb.tolerations | tidb.tolerations 应用于 TiDB Pods,允许 TiDB Pods 调度到含有指定 taints 的节点上,详情参考:taint-and-toleration | {} |
tidb.annotations | 为 TiDB Pods 添加特定的 annotations | {} |
tidb.maxFailoverCount | TiDB 最大的故障转移数量,假设为 3 即最多支持同时 3 个 TiDB 实例故障转移 | 3 |
tidb.service.type | TiDB 服务对外暴露类型 | NodePort |
tidb.service.externalTrafficPolicy | 表示此服务是否希望将外部流量路由到节点本地或集群范围的端点。有两个可用选项:Cluster (默认)和 Local 。Cluster 隐藏了客户端源 IP,可能导致流量需要二次跳转到另一个节点,但具有良好的整体负载分布。Local 保留客户端源 IP 并避免 LoadBalancer 和 NodePort 类型服务流量的第二次跳转,但存在潜在的不均衡流量传播风险。详细参考:外部负载均衡器 | nil |
tidb.service.loadBalancerIP | 指定 TiDB 负载均衡 IP,某些云提供程序允许您指定 loadBalancerIP。在这些情况下,将使用用户指定的 loadBalancerIP 创建负载平衡器。如果未指定 loadBalancerIP 字段,则将使用临时 IP 地址设置 loadBalancer。如果指定 loadBalancerIP 但云提供程序不支持该功能,则将忽略您设置的 loadbalancerIP 字段 | nil |
tidb.service.mysqlNodePort | TiDB 服务暴露的 mysql NodePort 端口 | |
tidb.service.exposeStatus | TiDB 服务是否暴露状态端口 | true |
tidb.service.statusNodePort | 指定 TiDB 服务的状态端口暴露的 NodePort | |
tidb.separateSlowLog | 是否以 sidecar 方式运行独立容器输出 TiDB 的 SlowLog | 如果 TiDB Operator 版本 <= v1.0.0-beta.3,默认值为 false 。如果 TiDB Operator 版本 > v1.0.0-beta.3,默认值为 true |
tidb.slowLogTailer.image | TiDB 的 slowLogTailer 的镜像,slowLogTailer 是一个 sidecar 类型的容器,用于输出 TiDB 的 SlowLog,该配置仅在 tidb.separateSlowLog =true 时生效 | busybox:1.26.2 |
tidb.slowLogTailer.resources.limits.cpu | 每个 TiDB Pod 的 slowLogTailer 的 CPU 资源限额 | 100m |
tidb.slowLogTailer.resources.limits.memory | 每个 TiDB Pod 的 slowLogTailer 的内存资源限额 | 50Mi |
tidb.slowLogTailer.resources.requests.cpu | 每个 TiDB Pod 的 slowLogTailer 的 CPU 资源请求 | 20m |
tidb.slowLogTailer.resources.requests.memory | 每个 TiDB Pod 的 slowLogTailer 的内存资源请求 | 5Mi |
tidb.plugin.enable | 是否启用 TiDB 插件功能 | false |
tidb.plugin.directory | 指定 TiDB 插件所在的目录 | /plugins |
tidb.plugin.list | 指定 TiDB 加载的插件列表,plugin ID 命名规则:插件名-版本,例如:'conn_limit-1' | [] |
tidb.preparedPlanCacheEnabled | 是否启用 TiDB 的 prepared plan 缓存。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[prepared-plan-cache] enabled = false | false |
tidb.preparedPlanCacheCapacity | TiDB 的 prepared plan 缓存数量。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[prepared-plan-cache] capacity = 100 | 100 |
tidb.txnLocalLatchesEnabled | 是否启用事务内存锁,当本地事务冲突比较多时建议开启。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[txn-local-latches] enabled = false | false |
tidb.txnLocalLatchesCapacity | 事务内存锁的容量,Hash 对应的 slot 数,会自动向上调整为 2 的指数倍。每个 slot 占 32 Bytes 内存。当写入数据的范围比较广时(如导数据),设置过小会导致变慢,性能下降。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[txn-local-latches] capacity = 10240000 | 10240000 |
tidb.tokenLimit | TiDB 并发执行会话的限制。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:token-limit = 1000 | 1000 |
tidb.memQuotaQuery | TiDB 查询的内存限额,默认 32GB。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:mem-quota-query = 34359738368 | 34359738368 |
tidb.checkMb4ValueInUtf8 | 用于控制当字符集为 utf8 时是否检查 mb4 字符。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:check-mb4-value-in-utf8 = true | true |
tidb.treatOldVersionUtf8AsUtf8mb4 | 用于升级兼容性。设置为 true 将把旧版本的表/列的 utf8 字符集视为 utf8mb4 字符集如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:treat-old-version-utf8-as-utf8mb4 = true | true |
tidb.lease | tidb.lease 是 TiDB Schema lease 的期限,对其更改是非常危险的,除非你明确知道可能产生的结果,否则不建议更改。如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:lease = "45s" | 45s |
tidb.maxProcs | 最大可使用的 CPU 核数,0 代表机器/Pod 上的 CPU 数量。 如果 TiDB Operator 版本 > v1.0.0-beta.3,请通过 tidb.config 配置:[performance] max-procs = 0 | 0 |