万韬_猎聘

潭朋义

2017/11/14 发布于 技术 分类

01云计算_万韬_猎聘_下载版

文字内容
1. 缓存弹性云平台架构及原理 --- Kubernetes网络选型实战与那些踩过的坑 OPS: 王勇敬 2016-11-25
2. 概念 1. 持久化存储!= 有状态 2. 不持久化的有状态服务 www.liepin.com 2
3. Legacy Redis www.liepin.com 3
4. Kubernetes + Redis(预期) Zookeeper RedisCloud-control redis-1a slaveof redis-1b A redis-2b slaveof redis-2a P redis-3a slaveof redis-3b P www.liepin.com Label-A K8s Label-B 4
5. Kubernetes 网络 - 1 www.liepin.com 5
6. Kubernetes 网络 - 2 Proxy redis-1a slaveof redis-1b A redis-2b slaveof redis-2a P redis-3a slaveof redis-3b P www.liepin.com Label-A K8s Label-B 6
7. Kubernetes 网络 - 3 www.liepin.com 7
8. Kubernetes 网络 - 4 Zookeeper RedisCloud-control redis-1a slaveof redis-1b A redis-2b slaveof redis-2a P redis-3a slaveof redis-3b P flannel.1 www.liepin.com Label-A K8s Label-B flannel.1 flannel.1 8
9. Kubernetes 网络 - 5 Zookeeper APP RedisCloud-control redis-1a redis-2b redis-3a slaveof slaveof slaveof redis-1b redis-2a redis-3b netconf www.liepin.com etcd Label-A K8s Label-B flannel.1 flannel.1 K8s-Master 9
10. Kubernetes 运维 – 1 1. 部署 a. CMDB b. Ansible 2. 监控&报警 a. Open-Falcon www.liepin.com 10
11. Kubernetes 运维 – 2 3. 遇到的问题 a. Flannel节点不通 b. nf_conntrack: table full, dropping packet c. Too many open files d. inotify cannot be used, reverting to polling: Too many open files www.liepin.com 11
12. To be continued
13. 缓存弹性云平台架构及原理 --- Redis/ Memcached 弹性伸缩、自动路由、无损迁移 万韬 2016-11-25
14. 缓存弹性云平台 www.liepin.com 缓存云平台的由来及特点  一个有温度&有思想的Paas平台 缓存云平台核心架构  弹性伸缩&服务自动发现与路由 Redis服务综合治理方案  多维度数据采样&分析&展示&报警 Redis数据在线无损迁移揭秘  数据二阶段迁移&客户端快速平滑切换 14
15. 缓存云平台的由来 待解决的痛点 • 运维人员 – 故障处理 – 维护成本 – 无场景化 • 开发人员 – 资源浪费 – 监控报警 – 弹性伸缩 www.liepin.com 15
16. 缓存云平台的特点 基于公司的私有云开发 • 物理资源统一管理,运维人员不 再需要运维单个物理机和单个实 例,只需关心整个资源池的管理。 • 平台实时反馈缓存服务的状态, 缓存平台依据真实有效的数据随 时调整缓存的节点数和空间。 • 该平台即为一个Paas平台,提供 了缓存服务的自动扩容、迁移、 管理、监控、运维,以及使用情 况和数据的自动治理。 www.liepin.com 16
17. 缓存云平台核心架构 基于Kubernetes开发的私有云平台 www.liepin.com 17
18. 缓存云平台核心架构 www.liepin.com 18
19. 缓存云平台核心架构 www.liepin.com 19
20. Redis服务综合治理方案 • Redis服务核心治理思想 – 方便运维人员管理集群、处理故障 • 集群容量配额统计及报警 • 容器平台时刻维护缓存实例数 • 容器平台自动转移故障节点 – 为开发人员提供多维度的数据采集、分析与展示 • 峰值QPM环比 • 内存使用情况 • 网络流量统计 • 慢查询统计分析 • 命中率环比展示 • 全局Top统计 www.liepin.com 20
21. Redis服务综合治理方案 • 资源统计分析 全局资源统计 资源阀值报警 资源分配不合理 www.liepin.com 21
22. Redis服务综合治理方案 • 请求访问实时/环比分析 网络实时流量 命中率环比分析 www.liepin.com 22
23. Redis服务综合治理方案 • TOP统计分析 QPM访问最高Top 资源使用率最低Top 命中率最低Top www.liepin.com 23
24. Redis服务综合治理方案 • 缓存key治理 www.liepin.com 24
25. Redis服务综合治理方案 • Web SSH终端&日志 www.liepin.com 25
26. 缓存数据无损迁移揭秘 缓存数据在线无损迁移关键步骤 • 实现的重点及难点 – 支持Redis v2.8及以上版本的所有数据类型 – 数据迁移分为二个阶段,需要分别解析RDB和command – 客户端“零”感知平滑切换 www.liepin.com 26
27. 缓存数据无损迁移揭秘 无损迁移的思路 --- Redis主从复制原理 1、只要是给Master发送SYNC命令,就等同于“Slave” 2、数据迁移分为两个阶段:RDB快照和buffer增量数据 www.liepin.com 27
28. 缓存数据无损迁移揭秘 扩容Redis+数据迁移过程 slave 数据迁移模块 Hash 目标 Redis 目标 Redis send SYNC Socket RDB AOF 第一阶段 命令 命令 命令 buffer 第二阶段 Master 源 Redis SYNC之后 的修改命令 客户端 RDB Snapshot 此处 有坑 • Tip: 第一阶段的数据是RDB Snapshot,返回 的是二进制流,需要按RDB格式依次解析; • 第二阶段属于增量数据,返回的是命令, 解析时按行读取。 • 必须先迁移RDB快照再迁移增量数据 www.liepin.com 28
29. 缓存数据无损迁移揭秘 Redis缓冲区限制 • 趟过的坑:在RDB数据未传完之前,Master接受到的指令 不会立刻发送给slave,先会放在output buffer中。 重点关注client-output-buffer-limit,含义是如果 buffer超过256m或者连续60秒超过64m,连接就会被立刻 强行关闭!!! • 解决方案: • 限制单个Redis实例的内存不要超过8G • 迁移时先把RDB文件持久化至本地磁盘后,立即取走 buffer中的增量数据,防止buffer区占满 www.liepin.com 29
30. 缓存数据无损迁移揭秘 Redis RDB文件格式 www.liepin.com 30
31. 缓存数据无损迁移揭秘 Buffer增量数据格式 www.liepin.com 31
32. THANKS