您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[网易]:分布式数据库在云环境下的实践 - 发现报告
当前位置:首页/其他报告/报告详情/

分布式数据库在云环境下的实践

2023-03-09网易叶***
分布式数据库在云环境下的实践

分布式数据库在云环境下的实践李淳竹网易数字+云原生论坛 TiDB架构简介TiDBOperator架构TiDBOperator原理目录CONTENTSTiDBOperator后续演进网易数字+云原生论坛 TiDB 架构简介网易数字+云原生论坛 TiDB架构简介Application via MySQL ProtocolTiDBTiDBTiDB...TiDB ClusterTiKVTiKVTiKVTiKVTiFlashTiFlash...Storage ClusterMetadataPDPDPD... PD ClusterTSO/Data LocationDistSQLAPIKVAPI网易数字+云原生论坛 TiDB架构简介TiDB 跟我的微服务一样:●声明式管理●自动运维●弹性资源配置以及最重要的●稳定性●稳定性●还是稳定性!我们想要网易数字+云原生论坛 TiDB架构简介TiDB 能适应动态化的Kubernetes 环境●多副本容错●水平伸缩●良好的可观测性TiDBKubernetes网易数字+云原生论坛 TiDB架构简介Kubernetes也能高效服务TiDB●声明式API 简化集群管理●弹性资源池简化扩缩容与故障转移TiDBKubernetes网易数字+云原生论坛 TiDB架构简介TiDB 和Kubernetes 都遵循同样的云原生最佳实践原则因此,假如你熟悉TiDB 和Kubernetes 的知识,很容易便能编写一组Kubernetes 的资源定义文件来部署一个TiDB 集群。网易数字+云原生论坛 TiDB架构简介还不够!网易数字+云原生论坛 TiDBOperator架构网易数字+云原生论坛 为什么需要TiDBOperatorAPIKubernetesCluster-Kubernetes 有pod, deployment, statefulset, etc.-但Kubernetes 并不知道如何管理一个TiDB 集群的生命周期expectations网易数字+云原生论坛 我们希望TiDBOperator做什么完整管理TiDB集群lifecycle●部署●升级●扩缩容●故障恢复●数据备份/恢复/导入/导出/迁移TiDB OperatorTiDB网易数字+云原生论坛 TiDBOperator架构图网易数字+云原生论坛 自定义类型网易数字+云原生论坛 自定义控制器网易数字+云原生论坛 自定义控制器TiDB OperatorTiDBPD APIKubernetes APIDesired StateActual StateReconcile网易数字+云原生论坛 扩展调度器kube-schedulerother Podother Podother Podkube-schedulertidb-schedulerPD PodTiKV PodTiDB Pod网易数字+云原生论坛 扩展调度器3 TiKV ❌Node-ANode-BNode-CTiKVTiKVTiKVAPP3 TiKV ✅Node-ANode-BNode-CAPP> 3 TiKV ✅Node-ANode-BNode-CAPPTiKVTiKVTiKVTiKVTiKVTiKVTiKVTiKV网易数字+云原生论坛 TiDBOperator原理网易数字+云原生论坛 部署集群用户侧●kubectlapply -f tidb.yamlWatch objectsDefaultingValidatingSync PDSync TiKVSync TiDBSync ...创建对应Kubernetes对象网易数字+云原生论坛 部署集群TiDB ControllerManagerTiDBSchedulerControllerManagerAPIServerReplicaSetPodPodPodetcdStatefulSetNodeNodeNodePodContainerContainerPodContainerContainerPodContainerContainerTidbClusterConfigMapTidbCluster网易数字+云原生论坛 升级集群/更新集群配置●先调用PD 迁移region leader,再重建容器进行升级TiKV Revision 2TiKV Revision 1TiKV-4TiKV-3TiKV-2TiKV-1TiKV-0网易数字+云原生论坛 扩容/缩容集群缩容集群●标记PVC待删除●调用PD 迁移region leader●通过PDAPI删除TiKVStore●Scale in StatefulSet扩容集群●删除标记的PVC●Scale out StatefulSet网易数字+云原生论坛 故障转移TiKV-0Node ANode BTiKV-2Node CTiKV-1TiDB Operator 的控制器能够通过PD 中的状态信息判断TiKV store 是否异常网易数字+云原生论坛 故障转移TiKV-0Node ANode BTiKV-2Node CTiKV-1Node DTiKV-3补充新的TiKV网易数字+云原生论坛 数据备份/恢复/导入/导出●定制化CR,减少用户配置部署负担●创建备份恢复Job●统计信息到CRStatus●支持定时备份,数据更安全BackupRestoreBackupSchedule网易数字+云原生论坛 性能问题●支持独享节点(Dedicated)部署与混部,可以按照优先级权衡性能与成本;●支持通过HostNetwork部署集群,消除额外网络开销;网易数字+云原生论坛 稳定性问题●K8S Master 故障:不影响集群●K8S Node 故障:自动故障转移●K8S 全集群故障:保留存储,确保不丢数据●灾难恢复:周期性备份网易数字+云原生论坛 TiDBOperator后续演进网易数字+云原生论坛 更灵活、更高可用的部署方案TiDBOperator支持配置异构部署●支持部署异构的TiDB集群,异构集群间的配置不同TiDBOperator支持跨Kubernetes部署●使Operator能够跨多个部署在不同区域数据中心的Kubernetes集群部署TiDB集群,以实现区域或数据中心级别的HA。节省硬件开销,部署配置更加灵活网易数字+云原生论坛 自动伸缩TiDB...TiDB ClusterTiKVTiFlashDistSQL APIKVAPI...Storage ClusterMetadataPDPDPD... PD ClusterTSO/Data LocationControllerPD•PD 根据部署信息和监控信息计算合理的副本数Controller•Controller向PD请求合理副本信息•Controller根据返回信息调整集群规模网易数字+云原生论坛 支持部署数据迁移工具TiDBDM支持部署数据迁移工具TiDBDM到Kubernetes集群,帮助用户方便、高可用地迁移例如MySQL的数据到TiDB网易数字+云原生论坛 后记更多TiDBOperator的设计、讨论、使用:•https://docs.pingcap.com/zh/tidb-in-kubernetes/stable•https://github.com/pingcap/tidb-operator也欢迎移步TiDB sig-k8s channel 与我们讨论:•https://tidbcommunity.slack.com/archives/CHD0HA3LZ网易数字+云原生论坛 THANK YOU网易数字+云原生论坛