全球运维技术大会

七牛 张勇 基于k8s开发高可靠数据库服务的实践

1. 基于k8s开发高可靠数据库服务的实践 张勇 七牛容器云架构师
2. 主题 01 企业使用关系型/NoSQL数据库面临的挑战 02 七牛云数据库产品的特性 03 七牛云数据库的架构设计
3. 企业使用数据库面临的挑战 数据高可靠 服务高可用 易运维
4. 主题 01 企业使用关系型/NoSQL数据库面临的挑战 02 七牛云数据库产品的特性 03 七牛云数据库的架构设计
5. 七牛云数据库产品 基于k8s开发/部署的云原生应用
6. 七牛云容器PaaS平台组件概览
7. 七牛云容器应用市场
8. 七牛云数据库产品的特性 数据高可靠 服务高可用 易运维
9. 主题 01 企业使用关系型/NoSQL数据库面临的挑战 02 七牛云数据库产品的特性 03 七牛云数据库的架构设计
10. 整体架构 – 以 MongoDB on k8s 应用为例
11. 部署方案 – 以 MongoDB on k8s 为例 • 三节点的 MongoDB 复制集 • 使用 StatefulSet 部署 MongoDB • Pod 间设置非亲缘性 • 对用户暴露四层负载均衡服务地址来访问 MongoDB集群
12. 数据高可靠设计 – 以 MongoDB on k8s 应用为例 • 数据库的数据目录使用 Ceph 网络存储,数据多副本 • 每日定时备份 + 支持一键手动备份 • 备份数据采用七牛对象存储或 Ceph FS 网络存储,多副本设计
13. 服务高可用设计1: 应用自身 – 以 MongoDB on k8s 应用为例 • MongoDB 复制集 – 三节点 主从节点数据自动同步 主故障,从自动切主 写入主节点 读主或读从取决于一致性模式 • 热备份 备份期间不影响节点可用性
14. 服务高可用设计2: 健康监测 • 实时监控 • 及时汇报状态 监控告警模块 自动故障处理模块
15. 服务高可用设计3: 故障自动处理 • 根据健康监测结果,采取不同的处理方式 • 能从大部分的常见故障中自动恢复
16. 运维简易化设计1: 管理简单 • 一键部署/删除 – 后台自动创建/销毁数据库集群 • 定时任务自动备份数据库 • 一键恢复数据库 • 故障自动处理,减少人工干预
17. 运维简易化设计2: 监控/告警功能强大 • 丰富的监控指标 • 监控指标图形化的展示 • 可自定义的告警功能 • Prometheus + Grafana + 开源 Exporters
18. 运维简易化设计2: 监控/告警功能强大(续) • 自定义的业务监控指标 Red - 集群无法提供服务 Yellow - 集群可提供服务,但部分节点异常 Green - 集群可提供服务,无异常节点
19. 通用服务模块 故障自动处理 数据备份 健康监测 备份清理 数据恢复 任务调度 配 置 管 理 通用功能 监日 控志 服服 务务 访问 APIServer 压缩/解压数据 定时任务 上传/下载数据 加密/解密 …

相关幻灯片