黄东旭解析 TiDB 的核心优势
583
2023-04-01
本文档介绍如何为已有的的tidb集群再部署一个不同服务组件构建的集群。异构集群是与已有 TiDB 集群不同配置的节点构成的集群。
适用于基于已有的 TiDB 集群需要创建一个差异化配置的实例节点的场景,例如:
创建不同配置不同 Label 的 TiKV 集群用于热点调度
创建不同配置的 TiDB 集群分别用于 OLTP 和 OLAP 查询
已经存在一个 TiDB 集群。如果尚未部署 TiDB 集群,请现在K8S环境中构建一个TiDB集群。
依据是否需要为异构集群开启TLS,分为方式一和方式二,可任选。
执行以下指令创建异构集群配置文件,其中 origin_cluster_name 为要加入的原集群名称,heterogeneous_cluster_name 为异构集群名称,为了后续在 TidbMonitor 的 Grafana 中同时查看原集群和异构集群的监控数据,请以原集群名称为前缀对异构集群进行命名。
origin_cluster_name=basic heterogeneous_cluster_name=basic-heterog cat > cluster.yaml << EOF apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${heterogeneous_cluster_name} spec: configUpdateStrategy: RollingUpdate version: v6.5.0 timezone: UTC pvReclaimPolicy: Delete discovery: {} cluster: name: ${origin_cluster_name} tikv: baseImage: pingcap/tikv maxFailoverCount: 0 replicas: 1 # 如果不设置 storageClassName,TiDB Operator 将使用 Kubernetes 集群默认的 Storage Class # storageClassName: local-storage requests: storage: "100Gi" config: {} tidb: baseImage: pingcap/tidb maxFailoverCount: 0 replicas: 1 service: type: ClusterIP config: {} tiflash: baseImage: pingcap/tiflash maxFailoverCount: 0 replicas: 1 storageClaims: - resources: requests: storage: 100Gi EOF相比于普通 TiDB 集群配置文件,异构集群配置文件的唯一区别是,你需要额外配置 spec.cluster.name 字段为已有的 TiDB 集群名。通过此字段,TiDB Operator 会将该异构集群加入到已有的 TiDB 集群。
依据需要,修改异构集群配置文件中各组件节点的配置项如果不需要或者删除不需要的组件,可以不加相关的配置或replicas为0
apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: idc namespace: lqbyz spec: configUpdateStrategy: RollingUpdate version: v6.5.0 timezone: UTC pvReclaimPolicy: Delete discovery: {} cluster: name: tidb-test tikv: baseImage: pingcap/tikv maxFailoverCount: 0 replicas: 3 # # 如果不设置 storageClassName,TiDB Operator 将使用 Kubernetes 集群默认的 Storage Class storageClassName: local-hostpath requests: storage: "20Gi" config: {} tidb: baseImage: pingcap/tidb maxFailoverCount: 0 replicas: 3 service: type: ClusterIP config: {} tiflash: baseImage: pingcap/tiflash maxFailoverCount: 0 replicas: 1 storageClaims: - resources: requests:创建异构集群kubectl create -f cluster.yaml -n ${namespace}开启异构集群 TLS 需要显示声明,需要创建新的 Secret 证书文件,使用和目标集群相同的 CA (Certification Authority) 颁发。如果使用 cert-manager 方式,需要使用和目标集群相同的 Issuer 来创建 Certificate。
为异构集群创建证书的详细步骤,可参考以下文档:
为 TiDB 组件间开启 TLS
为 MySQL 客户端开启 TLS
创建证书后,要部署一个开启 TLS 的异构集群,请进行以下操作:
为异构集群新建一个集群配置文件。执行以下指令创建异构集群配置文件,其中 origin_cluster_name 为要加入的原集群名称,heterogeneous_cluster_name 为异构集群名称,为了后续在 TidbMonitor 的 Grafana 中同时查看原集群和异构集群的监控数据,请以原集群名称为前缀对异构集群进行命名。
apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${heterogeneous_cluster_name} spec: tlsCluster: enabled: true configUpdateStrategy: RollingUpdate version: v6.5.0 timezone: UTC pvReclaimPolicy: Delete discovery: {} cluster: name: ${origin_cluster_name} tikv: baseImage: pingcap/tikv maxFailoverCount: 0 replicas: 1 # 如果不设置 storageClassName,TiDB Operator 将使用 Kubernetes 集群默认的 Storage Class # storageClassName: local-storage requests: storage: "100Gi" config: {} tidb: baseImage: pingcap/tidb maxFailoverCount: 0 replicas: 1 service: type: ClusterIP config: {} tlsClient: enabled: true tiflash: baseImage: pingcap/tiflash maxFailoverCount: 0 replicas: 1 storageClaims: - resources: requests: storage: 100Gi依据需要,修改异构集群配置文件中各节点的配置项。例如,你可以修改 cluster.yaml 文件中各组件的 replicas 数量或者删除不需要的组件。
执行以下命令创建开启 TLS 的异构集群。你需要将 cluster.yaml 替换为你的异构集群配置文件名。kubectl create -f cluster.yaml -n ${namespace}如果执行成功,输出会提示 tidbcluster.pingcap.com/${heterogeneous_cluster_name} created。TiDB Operator 会根据集群配置文件,创建对应配置的 TiDB 集群。
如果你需要为异构集群部署监控,请在已有 TiDB 集群的 TidbMonitor CR 文件增加异构集群名。具体操作如下:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。