云原生数据库管控探索和实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 云原生数据库管控探索和实践 孙勇福 腾讯云数据库专家工程师
2.
3. 个人介绍 l 孙勇福,腾讯云数据库专家工程师,腾讯云数据库“云 巢”负责人,8年数据库相关研发经验 l 从零设计腾讯云数据库云原生DBPaaS“云巢”平台, 并参与多款腾讯云数据库产品从零到一落地。致力于 提供易用/稳定/安全的数据库库产品服务,具备丰富 的数据库产品研发等技术经验。
4. • PaaS平台背景 • 整体架构演进 • 未来展望 • Q&A
5. PaaS平台背景 数据库发展 云计算形态 SQL NoSQL NewSQ mysql L mong sqlsvr oracle es hbase 单云 多云 TiDB cynos arura 传统IT 架构 私有云 混合云 公有云 数据库技术迭代速度加快,应用场景愈加复杂
6. PaaS平台背景 产品矩阵 DTS DTS DBbrain DBbrain DBS DMC DBAudit DBS PaaS平台 DMC DBAudit MySQL MySQL CTSDB CTSDB PostgreSQL TcaplusDB TDSQL PostSQL 烟囱发展走向一体化解决 TcDB TDSQL ….. …..
7. PaaS平台背景 Ø PaaS平台核心 规范标准 统一规范标准为数据库服务一体化提供 基础,标准地层硬件设施,减少差异化 定制影响。 能力增强 1 2 安全稳定 安全稳定是数据库基础,将数据库沉淀作为标准化 产品减少人为影响,满足客户高可用要求 PaaS 平台 4 3 降本增效 建立通用的PaaS平台能力为新数据类型 数据库统一管理,提供生命周期统一管理能力,降 能力扩展奠定基础。同时为多产品之间 低系统复杂性。产品之间经验相互积累,提高产品 融合满足多场景要求提供可能。 开发和维护效率。
8. PaaS平台背景 产品能力 资源管理 应用管理 镜像管理 产品运营 监控告警 可观测性 权限控制 联合PaaS提供更多应用体验 应用管理 作业平台 调度系统 数据迁移 SQL管理 智能DBA … 应用定义 云原生统一资源模型标准,提供多种PaaS服务 服务整合 TDStore CRedis LibraDB KonisGraph Etcd TDMQ 云巢资源管理 资源调度 容器底座 网络调度 本地盘/云盘调度 资源装箱 …… 进程保护 K8S X86/TencentOS 鲲鹏/麒麟 Arm/Tencent OS ……. …
9. • PaaS平台背景 • 整体架构演进 • 未来展望 • Q&A
10. 整体架构演进 容器编排 有状态服务 PaaS平台 思考?
11. 整体架构演进 Ø 开源社区 operator ? 一体化解决?
12. 整体架构演进 业务产品 资源管理 运维 集群管理 HA Flow_manager 事件 Argo-engine WF 1 2 3 资源调度管理 Meta_controller create upgrade 资源管理 告警 CRD CRD 业务作业台 日志 CRD CRD Jobs 资源调度管理 K8S CBS COS CVM VPC CLS
13. 整体架构演进 Ø 业务常见模型分析: Ø 云巢平台: l 主从关系: MySQL/SQLSvr/PostgreSQL/Redis l 使用K8S CRD 模型抽象数据库资源拓扑 l 多层树状类型:TDSQL l 模型对象统一调度管理 l 网状结构:Codis/Clickhouse/MGR/Tbase/CynosDB/TiDB 云巢平台 数据库实例模型 Master 计算节点 proxy Slave M-S 主从类型 流程系统 M-S 树状类型 协 调 资源管理系统 HA系统 CRD 分布式存储 网状类型 cluster 主从类型 M S 网状类型 树状类型 • poxy p r o x y set 计算 M-S K8S 物理分布 协调 存储 pod pod set pod pod K8S 容器模型 pod pod
14. 整体架构演进 Ø 属性拆分 Clickhouse Clickhouse cluster cluster 依赖 Zookeeper Clickhouse Zookeeper Clickhouse 访问 组网 组网 资源拓扑 资源属性
15. 整体架构演进 Ø 自定义产品模型 领域模型 变化 :领域知识 SchedulerPolicy Ingress cluster relationship Probe policy 固定 :标准定义 backup policy ……. 控制器
16. 整体架构演进 Ø 容器控制 Service client Pod ü 业务容器增强 业务容器 ü 集中管理 控制器 ü 灵活控制 配置文件 ü 业务资源隔离 脚本命令 服务发现 Sidecar
17. 整体架构演进 Ø 方案设计: Ø 方案目标: l 满足节点启动顺序要求 l POD 并发创建 l 兼顾发货效率要求 l Init-container 阻塞业务进程 l 业务自定义依赖启动策略 串行启动,随着节点数增加性能急剧下降 Ø 容器能力分析: l POD 控制器 生命周期 hook 点: init-container wait Zk initcontaine r Init-2 Pre-start ck wait init initcontainer run Biz- tim container e init runt Biz- ime container Init-1 Init-container Quit 并行创建 POD init runt ime Main-container Liveness probe • 统一资源生命周期控制器,优化调度逻辑 Readiness probe • 设置自定义资源控制策略模型 Pre-stop 16 启动策略 控制器 zk initcontainer Biz- container CK ck wait init initcontainer runti Biz-container me
18. 整体架构演进 Ø 难点 Ø 云巢配置中心 l CRD 是数据库实例的元数据层,数据库启动配置依赖CRD l Val_translater 配置文件,通过 starlark 提供类Python语法提供简单编程 l Translater 层不能有侵入性 l 业务配置文件接入,无侵入云巢平台 values CRD 获取value 配置模版 获取tpl Val_translater 文 件 def main(args): encode = json.encode names = strings.Split(args.pod.name, "-”) data = { "pod": args.pod, " myId": names[len(names)-1] , } return {"public": data, "__debug": args } 灵活语法支持 配置中心 配置模版 控制器 发货:下发配置 运行:下发配置 init runti me set1 wait initcontainer init Biz-container runti me Sidecar-agent Set2 wait initcontainer Biz-container Sidecar-agent 渲染 <ip>{{.public.pod.podIp}}</ip> <myid>{{.public.myId}}</myid> <ip>9.166.11.15</ip> <myid>0</myid> 17
19. 整体架构演进 Ø 高可用考虑 Write Clickhouse集群 MySQL集群 资源抢占 服务故障 主从关系 MySQL 网络故障 MySQL Zookeeper Data Clickhouse Data 进程故障 : 代码bug/oom/进程假死等 网络故障:网络隔离等导致组件无法联 资源抢占: 运行实例POD 由于故障销 Pod 故障:驱逐/误删等 通 毁重建,资源被新增实例抢占无法恢复
20. 整体架构演进 Ø 方案 Ø 问题点 l K8s l 开发 健康检查不满足业务需求 l 实例异常判定比较复杂: 多维度数据采集 策略模型 异常事件 POD Tcp/http cmd Khaos-probe kubelet 拨测任务 拨测系统 拨测系统 • 管控命令 • • Liveness check HA策略树 指标 exec api HA_Brain 监测系统 事件系统 • probe l 多维度数据采集,业务配置异常情况决策模型 进程假死/网络隔离/磁盘只读? NODE khaos-probe 拓展 k8s liveness check 能力 • 云巢管控 云巢管控 云巢管控 HA 处理 HA领域算子
21. 整体架构演进 Ø 网络安全 l NetworkPolicy 限制最小化网络访问权限 l 用户请求链路通过安全组进行安全过滤 Node ZK-A 云巢网络 Network-policy eth eth 0 0 租户网络 Node CK-A eth1 安全组 GW VPC-B GW VPC-B X ZK-B Network-policy eth eth 0 0 防火墙 CK-B eth1 安全组
22. 整体架构演进 Ø 多集群管理 l 提供秒级集群元数据采集,信息维护 l 提供m_scheduler 集群级别装箱调度器,实现业务上层资源集群无感知 集群管理 m_scheduler m_controller m_node 控制链路 资源集群 资源集群 CRD CRD 资源调度管理 CRD CRD 资源调度管理
23. 整体架构演进 Ø 性能优化 1. 2. 请求流量进入负载均衡 请求被负载均衡转发到某一个Pod的ENI弹性网卡 LB NodePort NodePort NodePort Kube proxy Kube proxy Kube proxy Conatiner Network POD POD POD POD POD POD • QPS 提高13% • 延迟优化10%
24. 整体架构演进 Ø 稳定性验证 l 混沌测试平台chaos-mesh引入,提供系统整体可用性评估 场景测试 Daily Bulid WF DSL-Engine 1 2 Failover场景 3 网络异常场景 • • • DSL 编排沉淀现网异常流程场景 1. 异常删除场景 2. 网络异常场景等,测试 case 集合 云巢DBPaaS平台 Chaos混沌平台 稳定性沉淀 K8s api-server Create / Delete/ Update Event List / Kill POD Chaos controller manager Chaos deamon kubelet Inject stress/Network/IO/… POD 引入开源chaos 平台,进行混沌测试 1. POD 任意KILL 2. 注入网络异常 3. 设置IO延迟 等场景,测试系统稳定性
25. 整体架构演进 Ø SaaS融合,一体化输出 ü 应用层整合 SaaS产品 云巢DBPaaS平台 资源管理 集群管理 运维管理 ü 标准能力输出 网络资源 存储资源 生命周管理 资源编排 运维系统 配置中心 计算资源 命令通道 可观测系统 发布管理 混沌平台 版本管理 实例管理 镜像资源 日志采集 公共服务 作业管理 运营平台 策略管理 CI/CD ü 容器层提供硬件屏蔽 K8S CBS COS CVM 监控告警 VPC CLS ü IaaS层提供基础能力
26. • PaaS平台背景 • 整体架构演进 • 未来展望 • Q&A
27. 未来展望 Ø 智能自治,千人千库 自治场景对比 智能化进程 传统方式 自治化 智能化 自动化 数据库压力 过大,负载 过高。慢查 询过多,数 据库响应比 较慢。 ·人工kill会 话 · 重启数据 库 · HA主备切 换 VS 自治方式 ·7*24 小时 异常诊断 ·流量自动过 滤阻断 ·SQL自动优 化调整
28. 未来展望 Ø 开源共建,回馈社区 经验 沉淀 海量 验证 促进/回馈 云 环 境 开 源 PaaS 平台统一解决方案 社 区 。。。 最佳 实践 社区 生态 场景 补充 。。。 反馈/优化 行业 规范
29. 扫码进入现场交流群
30.
31.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 09:54
浙ICP备14020137号-1 $Carte des visiteurs$