电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于K1 Power linux的Redis集群容器云平台测试报告

15页
  • 卖家[上传人]:Baige****0346
  • 文档编号:265411121
  • 上传时间:2022-03-13
  • 文档格式:DOCX
  • 文档大小:853.77KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 基于K1 Power linux的Redis 集群容器云平台测试报告 1. 背景和需求近年来,我行互联网金融业务发展迅速,网上银行、手机银行业务量成倍增加,井喷式增长的客户在线访问量和大数据高并发的访问需求,给电子银行相关系统带来了很大的挑战。比如在互联网金融业务场景中,常见的营销模式:秒杀,经常会出现的问题包括:并发太高导致程序阻塞;库存无法有效控制,出现超卖的情况。我们采用异步、缓存这两种手段来解决系统压力问题。前者,例如说内存队列(例如说 JDK Queue 、 Disruptor 等)、分布式队列(例如说 RabbitMQ 、 RocketMQ 、 Kafka ),更多适合写操作。后者,例如说内存缓存(例如说 JDK Map 、 EhCache 等)、分布式缓存(例如说 Redis 、 Memcached 等),更适合读操作。本文重点谈论后者中的 Redis ,目前我行已经有很多系统采用了 Redis 集群作为数据缓存层和消息队列,采用三主三从 6 节点的架构。多个 Redis 集群的运维管理,主要有以下三个方面的问题:版本管理难: Redis 之前是直接部署在物理机上,各个

      2、版本的 Redis 非常分散而且不容易维护。新集群部署慢:需要手动修改很多配置文件再逐个部署节点,初始化工作需要较长时间。资源隔离差:当前的 Redis 集群部署在物理机集群上,多业务线的 Redis 集群有混布的情况。由于没有做 CPU 的资源隔离,经常出现某 Redis 节点 CPU 使用率过高导致其他 Redis 集群的节点争抢不到 CPU 资源引起时延抖动。因为不同的集群混布,这类问题很难快速定位,影响运维效率。为了简化大规模 Redis 集群的运维管理工作,我行对新的技术手段展开调研。容器镜像天然支持标准化,与硬件无关,可以解决版本的问题, K8 通过 StatefulSet 部署 Redis 集群,使用 configmap 管理配置文件,新集群部署时间只需要几分钟,大大提高了运维效率。 Redis 容器化的好处非常多,但是结合到我行具体应用场景还有一些问题需要验证,我们希望在测试 Redis 数据库容器云应用(大数据平台领域)时了解以下方面:1 Redis 容器化以后与原来相比,性能读写,响应时间,网络流量有多大差距。2 访问 Redis 采用 ip 和端口,并且主从不能在

      3、一台宿主机上,如何解决以上问题?3 Redis 的配置文件和数据持久化如何在容器环境中保存?4 主节点宕机时, Redis 会自动将从节点转换为主节点,此时若 k8s 将原来主节点拉起会导致数据冲突。2. 测试方案设计测试环境的设计,我们真实模拟生产环境,采用了典型的三主三从 6 节点的架构,用 6 台虚拟机,每台机器作为 OpenShift Container Platform ( OCP )集群的一个 worker 节点,每个 worker 只启动一个 pod 实例,最大利用主机资源,同时 Redis 集群的架构与生产环境完全一致。生产环境的 Redis 集群是在应用层面对集群的各个节点做负载均衡和路由,集群运维难度大、成本高,所以在测试环境设计上,我们做了优化,采用中间件 haproxy 自动负载均衡,这样 Redis 集群对于前端应用来说透明,维护会比较简单。容器云平台的选型,我行经过调研,最终决定选用浪潮 K1 Power 与红帽 OpenShift 推出的容器云平台联合解决方案,该方案面向企业级客户在容器平台部署方面的需求,是可伸缩的,简化的以及快速的一个部署环境,经过浪潮

      4、和红帽严格的环境测试和官方认证,在使用这样一个软硬件环境的情况下,可以明显减少本次测试工作部署方面投入的时间和成本。3. 容器云集群架构OCP集群信息软件版本:集群说明:OCP 集群部署在 K1 Power Linux 服务器 FP5290G2 创建的虚机上。Redis 集群采用三主三从模式,六个 Redis 容器实例 pod 分别部署在 OCP 集群的六个 worker 节点上。Redis 作为有状态服务,通过 statefulset 统一部署集群 6 个 pod 。Redis 集群持久化采用 PVC 实现远程文件存储( nfs )到 Console 节点。基于 Redis cluster 集群内部数据请求重定向后会新建 tcp 连接,所有 pod 的 ip 外部需要访问到,这里实现 pod 的网络模式为 hostnetwork, 共用宿主机 worker 的网络接口和 ip 。集群前端搭建 haproxy 实现负载均衡。架构拓扑图如下:4. 高可用 Redis 集群部署1) ssh 登录 OCP 集群 console 节点。2) 创建 projectoc new-project R

      5、edis-cluster-test3) 创建 PV进到工作目录(自行创建)oc create -f pv.yamlpv.yaml 参考文件: 共创建 6 个 PV , Redis 集群 6 个节点会各分配一个,其中:server: 10.152.20.31path: /home/share/Redis-cluster-test/n0-5server 表示 nfs server ip ,这里设置为 console 节点 ippath 需要手动创建4) Console 节点主机设置启动 nfs 服务yum install y nfs-utilscat /etc/exports EOF/home/share/Redis-cluster-test/n0 *(insecure,rw,async,no_root_squash)/home/share/Redis-cluster-test/n1 *(insecure,rw,async,no_root_squash)/home/share/Redis-cluster-test/n2 *(insecure,rw,async,no_root_squash)

      6、/home/share/Redis-cluster-test/n3 *(insecure,rw,async,no_root_squash)/home/share/Redis-cluster-test/n4 *(insecure,rw,async,no_root_squash)/home/share/Redis-cluster-test/n5 *(insecure,rw,async,no_root_squash)EOFservice nfs restartservice rpcbind restart5) 在 project Redis-cluster-test 中创建 ConfigMapConsole 节点主机执行命令:oc create -f configmap.yaml -n Redis-cluster-testconfigmap.yaml 参考: 如果对 Redis 配置有要求,可以修改这个文件中的 Redis.conf 项6) 在 project Redis-cluster-test 中配置安全策略Console 节点主机执行命令:oc adm policy add-scc-t

      7、o-user anyuid -z default -n Redis-cluster-testoc adm policy add-scc-to-user privileged -z default -n Redis-cluster-testoc adm policy add-cluster-role-to-user cluster-reader -z default -n Redis-cluster-test7) 在 project Redis-cluster-test 中创建 statefulsetoc create -f sts.yamlsts.yaml 文件参考: 8) 查看已创建的 Redis 集群对象oc get pods -n Redis-cluster-testoc get pv -n Redis-cluster-testoc get pvc -n Redis-cluster-test9) 登录 web 界面确认创建对象登录后查找 statefulset:点击 Redis-cluster 后选择 Pods 标签:可以看到有 6 个 pod 已经 running ,分别分布到

      8、 6 个 worker 节点,点击其中任意一个,查看 POD_IP :可以看到 pod ip 使用的是宿主机 worker 节点的 ip , 说明集群外部网络是可以直接通过 IP 访问 pod 的。10) 启动 Redis 集群登录 Console 主机:Redis-cli -cluster create 10.152.20.41:6379 10.152.20.42:6379 10.152.20.43:6379 10.152.20.44:6379 10.152.20.45:6379 10.152.20.46:6379 -cluster-replicas 111) 验证集群功能登录 Console 主机:Redis-cli -h 10.152.20.41 c12) 在压力主机上搭建 haproxy主机 ip: 10.152.15.42yum install y haproxy/etc/haproxy/haproxy.cfg 参考:Harpoxy 监听端口 4306.启动 haproxy:haproxy -f /etc/haproxy/haproxy.cfg验证:Redis-cli -h

      9、10.152.15.42 -p 4306 -c5. 测试过程设计1)Redis容器 VS 非容器性能对比使用 Redis-benchmark 工具进行压力测试, Console 节点安装 Redis:6.0.5 版本, Console 节点部署 Docker 容器 Redis:6.0.5 版本:非容器 Redis 端口 6379 , Redis-Docker 映射本机端口 6380.客户端主机 ip:10.152.15.42非容器化 Redis 集群压力测试结果:模拟 100 并发, 100000 个请求登录 10.152.15.42 :Redis-benchmark -h 10.152.20.31 -c 100 -n 100000 :容器化 Redis 集群压力测试结果:测试结果显示, Redis 集群在 K1 Power 容器化和非容器化场景下性能差异不大。2)集群节点独立部署根据测试目标,参照第四章节把 Redis 集群的三主三从节点部署到容器云平台不同的 worker 节点上面,实现了 Redis 集群主从节点的独立部署。3)数据持久化Redis 集群的持久化使用容器云平台 nfs 远程存储,共创建 6 个 PV , Redis 集群 6 个节点会各分配一个, path 需要手动创建。4)f

      《基于K1 Power linux的Redis集群容器云平台测试报告》由会员Baige****0346分享,可在线阅读,更多相关《基于K1 Power linux的Redis集群容器云平台测试报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.