在过去的几个月里,我们的团队一直在忙于在 Kubernetes 上部署 Redis Enterprise。我们的旅程始于编写一个简单的 控制器,用于 Kubernetes 版本的 Redis Enterprise。几个月后,我们引入了 Helm Chart 支持,在过去的几个月里,我们一直在为 Kubernetes 版本编写一个 操作员。
通过这篇博文,我想介绍我们在 Pivotal Container Service® 集群上部署 Kubernetes 版本的 Redis Enterprise 所使用的原则。
以云原生方式管理容器化微服务至关重要,Kubernetes 已成为微服务架构的事实上的部署单元。PKS 是一个经过认证的 Kubernetes 发行版,可以与 Pivotal Application System® (PAS) 结合使用来管理您的整个应用程序生命周期。这两个平台都由 Cloud Foundry® 和 BOSH(一个云编排工具)管理。它们共同提供了一种有效的方法来管理有状态服务(例如您的数据库)以及无状态服务(例如您的应用程序)。
PKS 的三个主要组件是
为了这篇博文的目的,让我们假设这些组件已成功安装在 vSphere 等底层基础设施上。
Redis Enterprise 结合了世界一流的数据库技术的优势和充满活力的开源 Redis 社区的创新,从而获得
我们在 PKS 上的 Redis Enterprise 中使用四个重要原则,以最大限度地提高部署的稳健性
用于 PKS 部署的 Redis Enterprise 的 docker 映像位于 此处。您可以阅读有关 Redis Enterprise Kubernetes 版本架构的更多信息 此处。
开始使用
$ pks 集群 redis | |
名称 | redis |
计划名称 | large |
UUID | 5f4af2c0-5330-4dae-bdfc-6251ea3eecf2 |
最后操作 | 创建 |
最后操作状态 | 已成功 |
最后操作说明 | 实例供应已完成 |
Kubernetes 主机 | 104.196.4.15 |
Kubernetes 主机端口 | 8443 |
工作节点 | 4 |
Kubernetes 主机 IP(s) | 192.168.20.46, 192.168.20.47, 192.168.20.45 |
为了衡量性能,您可以使用 Redis Enterprise UI(或 API)创建一个 Redis 数据库,并使用以下参数(注意:此设置假设 Kubernetes 节点中有足够的内核来支持 Redis Enterprise 集群。在下面的示例中,我们使用了 14 个分片的数据库)
接下来,将 memtier_benchmark 部署到同一 Kubernetes 集群上的另一个 POD 上,并使用以下参数运行 memtier_benchmark
-d 100 –pipeline=35 -c 10 -t 8 -n 2000000 –ratio=1:5 –key-pattern=G:G –key-stddev=3 –distinct-client-seed –randomize
使用 Redis Enterprise UI 中的指标屏幕监控数据库在负载下的性能。正如您在下面的图中看到的,Redis Enterprise 可以轻松地使用 Kubernetes 基础设施上的一个集群节点达到 0.5M 次操作/秒以上,同时将延迟保持在亚毫秒级别。
下一步是什么?
在这篇博文中,我们演示了通过在平面网络上部署所有资源来简化 PKS 的部署。为了撰写这篇博文,我们使用了 PKS 的 Redis Enterprise 版本的技术预览版。随着我们努力实现普遍可用性,我们将继续探索我们围绕网络分段以及 Kubernetes 入口原语的 PKS 集成工作。此外,我们将很快添加对 主动-主动 PKS 上的地理分布式 Redis CRDT 的支持,以服务全球分布式应用程序。
如果您想开始尝试使用我们的 Redis Enterprise 版本,请与我们 联系,以便我们能够帮助您满足 Redis 需求。