数据库容器化和标准化之路 蔡松露|云猿生CTO 目录Contents 云、K8s和数据库演化趋势01 dbPaaS的挑战02 KubeBlocks的设计理念和核心特点03 数据库容器化的常见问题04 数据库私有化平台案例05 K8sPaaS全景图里还缺最后一块: 陷阱:烟囱式架构 数据库容器化后 能不能像一样在K8s上进行管理呢? 首先思考:如何解决软件工程复杂性问题 KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 把KubeBlocksAPI映射到数据库-MySQL 把KubeBlocksAPI映射到数据库-Redis主备 把KubeBlocksAPI映射到数据库-Redis集群 把KubeBlocksAPI映射到数据库-OB三节点 把KubeBlocksAPI映射到数据库-OB主备 把KubeBlocksAPI映射到数据库-PolarDB-X 把KubeBlocksAPI映射到数据库-Kafka KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 AddonAPI KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 KubeBlocks通过抽象和分层来管理数据库 例子:RedisAddon支持Redis多种部署形态 1.编写ComponentDefinition:Redis/Sentinel/Proxy 2.编写ComponentDefinition:Redis/Sentinel/Proxy 3.编写ComponentDefinition:Redis/Sentinel/Proxy 4.编写ClusterDefinition:组装Redis/Sentinel/Proxy 5.使用RedisAddon创建和管理Redis数据库 容器化会不会影响数据库的性能? K8s适合管理有状态服务么? 如何解决K8s和Operator的升级? •Kata•Firecracker KubeBlocks基于runC容器进行的性能优化 •Linux新的发行版都以Systemd为init进程,子进程都有自己的Cgroup空间,所有都有记账成本•runC使用Cgroup来做资源隔离,显式设置limit•k8srequest和Cgroup无关,只是用来控制k8s调度和驱逐逻辑•request=limit会受Cgroup流控限制,最高跑到70%•1.5x~1.8x是一个合理的“超卖”比例,为的是达到合理宣称的性能,干扰<5% KubeBlocks基于runC容器进行的性能优化 BM(BareMetal)CpuSet模式为性能基线,绑核+CgroupunlimitKB(KubeBlocks)使用Hostnetwork网络模式,与BM一致,Kata只能使用容器网络 •Kata的瓶颈在于Pod网络和Virtiofsd并发度(图中为1) KubeBlocks基于runC容器进行的性能优化 容器化会不会影响数据库的性能? K8s适合管理有状态服务么? 如何解决K8s和Operator的升级? StatefulSet InstanceSet •直接管理Pod•支持异构的Pod配置•支持指定Pod下线•支持管理非常多数量的Pod(e.g.几千个) •不支持PVC扩容•变更Pod配置时必须按照严格顺序e.g.pod-2,pod-1,pod-0•不支持异构的Pod配置 高可用和高可靠仍使用数据库副本复制技术 容灾调度策略 •不同节点部署•不同可用区部署 角色/健康探测 •探测节点可用性 •切换角色Label 控制粒度到Pod •滚动更新,控制节点变更顺序•计划内角色切换 支持集成第三方高可用组件 •可定制健康探测,结合系统信息综合判断•节点异常时提供自修复能力 设置资源分配上限(内存磁盘使用率、超卖率、Pod个数) 通过taint,toleration和affinity实现主机组隔离 通过Localpv将Pod绑定在Node上 Localpv跨Node迁移技术 避免NodepressureEviction 容器化会不会影响数据库的性能? K8s适合管理有状态服务么? 如何解决K8s和Operator的升级? 在正在成为趋势 应用场景:互联网公司的私有云降本增效 统一架构 业务团队业务团队 容器平台团队数据库团队中间件团队大数据团队提高密度 运维团队降低成本 应用场景:央国企和银行的数科公司的私有云 计量计费 子公司子公司子公司……国产替代 可定制性 KubeBlocksinCNCFLandscape KubeBlocks企业版 基于KubeBlocks提供公共云RDS体验的私有云数据库一站式管理服务 KubeBlocks特性总结 •基于抽象和API标准对多种据库引擎进行统一的管理•东八区最专业的数据库容器化团队•高质量高性能,生产环境部署标准的K8sOperator 欢迎交流 THANKS 感谢聆听 自主·创新·引领