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

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

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

网易数字+云原生论坛 分布式数据库在云环境下的实践 李淳竹 目录 CONTENTS TiDB架构简介 TiDBOperator架构 网易数字+云原生论坛 TiDBOperator原理 TiDBOperator后续演进 网易数字+云原生论坛 TiDB架构简介 PD PD PD …PDCluster TiDB架构简介 TiDB TiDB TiDB … TiDBCluster DistSQL API TiKV TiKV TiKV TiKV KVAPI TiFlash TiFlash … StorageCluster ApplicationviaMySQL Protocol 网易数字+云原生论坛 TSO/DataLocation Metadata TiDB架构简介 我们想要 网易数字+云原生论坛 TiDB跟我的微服务一样: ●声明式管理 ●自动运维 ●弹性资源配置 以及最重要的 ●稳定性 ●稳定性 ●还是稳定性! TiDB架构简介 TiDB能适应动态化的Kubernetes环境 网易数字+云原生论坛 ●多副本容错 ●水平伸缩 ●良好的可观测性 TiDB Kubernetes TiDB架构简介 Kubernetes也能高效服务TiDB 网易数字+云原生论坛 ●声明式API简化集群管理 ●弹性资源池简化扩缩容与故障转移 TiDB Kubernetes TiDB架构简介 TiDB和Kubernetes都遵循同样的云原生最佳实践原则 网易数字+云原生论坛 因此,假如你熟悉TiDB和Kubernetes的知识,很容易便能 编写一组Kubernetes的资源定义文件来部署一个TiDB集群。 TiDB架构简介 网易数字+云原生论坛 还不够! 网易数字+云原生论坛 TiDBOperator架构 为什么需要TiDBOperator API Kubernetes Cluster expectations 网易数字+云原生论坛 -Kubernetes有pod,deployment,statefulset,etc. -但Kubernetes并不知道如何管理一个TiDB集群的生命周期 我们希望TiDBOperator做什么 完整管理TiDB集群lifecycle 网易数字+云原生论坛 ●部署 ●升级 ●扩缩容 ●故障恢复 ●数据备份/恢复/导入/导出/迁移 TiDB TiDBOperator 网易数字+云原生论坛 TiDBOperator架构图 网易数字+云原生论坛 自定义类型 网易数字+云原生论坛 自定义控制器 自定义控制器 TiDB TiDB perator O 网易数字+云原生论坛 PDAPI KubernetesAPI DesiredState ActualState Reconcile kube-scheduler otherPod otherPod otherPod kube-scheduler tidb-scheduler PDPod TiKVPod TiDBPod 网易数字+云原生论坛 扩展调度器 网易数字+云原生论坛 扩展调度器 Node-A 3TiKV❌ Node-B Node-C TiKV TiKV TiKV APP Node-A 3TiKV✅ Node-B Node-C TiKV TiKV TiKV APP Node-A >3TiKV✅ Node-B Node-C TiKV TiKV TiKV TiKV TiKV APP 网易数字+云原生论坛 TiDBOperator原理 Watchobjects Defaulting Validating SyncPD SyncTiKV SyncTiDB Sync… 部署集群 网易数字+云原生论坛 用户侧 创建对应Kubernetes对象 ●kubectlapply-ftidb.yaml A TiDB Manager Config etcd Controller Manager Server Pod Pod TiDB Scheduler Pod PI et ReplicaS et StatefulS Map Controller ter TidbClus TidbCluster Node Pod Container Container Node Pod Container Container Node Pod Container Container 网易数字+云原生论坛 部署集群 升级集群/更新集群配置 网易数字+云原生论坛 ●先调用PD迁移regionleader,再重建容器进行升级 TiKV-4 TiKV-3 TiKV-2 TiKV-1 TiKV-0 TiKVRevision2 TiKVRevision1 扩容/缩容集群 缩容集群 网易数字+云原生论坛 ●标记PVC待删除 ●调用PD迁移regionleader ●通过PDAPI删除TiKVStore ●ScaleinStatefulSet 扩容集群 ●删除标记的PVC ●ScaleoutStatefulSet 故障转移 TiKV-0 NodeA TiKV-1 NodeB TiKV-2 NodeC 网易数字+云原生论坛 TiDBOperator的控制器能够通过PD中的状态信息判断TiKVstore是否异常 故障转移 TiKV-0 NodeA TiKV-1 NodeB TiKV-2 NodeC TiKV-3 NodeD 网易数字+云原生论坛 补充新的TiKV 数据备份/恢复/导入/导出 Backup ●定制化CR,减少用户配置部 网易数字+云原生论坛 署负担 Restore ●创建备份恢复Job BackupSchedule ●统计信息到CRStatus ●支持定时备份,数据更安全 性能问题 网易数字+云原生论坛 ●支持独享节点(Dedicated)部署与混部,可以按照优先级权衡性能与成本; ●支持通过HostNetwork部署集群,消除额外网络开销; 稳定性问题 ●K8SMaster故障:不影响集群 网易数字+云原生论坛 ●K8SNode故障:自动故障转移 ●K8S全集群故障:保留存储,确保不丢数据 ●灾难恢复:周期性备份 网易数字+云原生论坛 TiDBOperator后续演进 更灵活、更高可用的部署方案 TiDBOperator支持配置异构部署 网易数字+云原生论坛 ●支持部署异构的TiDB集群,异构集群间的配置不同 TiDBOperator支持跨Kubernetes部署 ●使Operator能够跨多个部署在不同区域数据中心的Kubernetes集群部署TiDB集群,以实现区域或数据中心级别的HA。 节省硬件开销,部署配置更加灵活 自动伸缩 PDPDPD…PDCluster Controller 网易数字+云原生论坛 PD TSO/DataLocation TiDB … TiDBCluster TiKV TiFlash … StorageCluster DistSQLAPI KVAPI Metadata •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 也欢迎移步TiDBsig-k8schannel与我们讨论: •https://tidbcommunity.slack.com/archives/CHD0HA3LZ 网易数字+云原生论坛 THANKYOU