在过去的几个月里,我们的团队一直忙于在 Kubernetes 上部署 Redis Enterprise。 我们的旅程始于编写一个简单的 控制器,用于 Kubernetes 发布的 Redis Enterprise。 几个月后,我们引入了 Helm Chart 支持,并且在过去的几个月里,我们一直在为 Kubernetes 版本编写 operator。
通过这篇博文,我想介绍一下我们用于在 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 cluster redis | |
名称 | redis |
计划名称 | large |
UUID | 5f4af2c0-5330-4dae-bdfc-6251ea3eecf2 |
上次操作 | CREATE |
上次操作状态 | 成功 |
上次操作说明 | 实例配置已完成 |
Kubernetes Master 主机 | 104.196.4.15 |
Kubernetes Master 端口 | 8443 |
工作节点 | 4 |
Kubernetes Master IP(s) | 192.168.20.46, 192.168.20.47, 192.168.20.45 |
为了衡量性能,您可以使用具有以下参数的 Redis Enterprise UI(或 API)创建一个 Redis 数据库(注意:此设置假定 Kubernetes 节点中有足够的内核来支持 Redis Enterprise 集群。 在下面的示例中,我们使用了一个 14 分片的数据库)
接下来,在同一 Kubernetes 集群上的另一个 POD 上部署 memtier_benchmark,并使用以下参数运行 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 ops/秒,同时保持低于亚毫秒级的延迟。
下一步是什么?
在这篇博文中,我们展示了通过在扁平网络上部署所有资源来简化 PKS 的部署。为了撰写这篇博文,我们使用了 Redis Enterprise for PKS 的技术预览版。随着我们朝着全面上市的目标努力,我们将继续探索我们围绕网络分段以及 Kubernetes Ingress 原语的 PKS 集成工作。此外,我们将很快添加对通过 PKS 实现的 Active-Active 地理分布式 Redis CRDT 的支持,以服务于全球分布式应用程序。
如果您想开始尝试我们的 Redis Enterprise for PKS 版本,请联系我们,以便我们帮助您满足 Redis 需求。