dot 速度的未来将在您的城市举行活动。

加入我们在 Redis 发布会

运行 Redis Enterprise Kubernetes 服务

Kubernetes 背景

容器化使开发团队能够快速移动、高效地部署软件并大规模运行。Kubernetes 提供自动化的容器编排以及在高可用性、分布式环境中管理容器的功能。该平台处理扩展、配置和部署新版本的映像,并简化应用程序部署和管理。在 Redis,我们正在积极开发基于 Kubernetes 的部署,该部署基于 Redis Enterprise 5.x。

期待本文内容

在之前的博文中,我谈到了 Kubernetes 原语 以及 本地 Kubernetes 开发。在这篇文章中,我将带您逐步了解在 Kubernetes 上部署 云原生 Redis Enterprise 的简单 4 步过程:

  1. 使用 StatefulSet 部署 Redis Enterprise 服务,并使用无头服务处理部署中 Pod 的 DNS 解析。
  2. 利用 Kubernetes 秘密原语来存储 Redis Enterprise 许可信息。
  3. 使用 Kubernetes 秘密引导一个三节点 Redis Enterprise 集群,并将 Redis Enterprise UI 公开到公网 IP。
  4. 部署基础设施并创建 Redis 数据库。部署将自动在 Kubernetes 服务目录中发布数据库端点。
Redis Enterprise in Kubernetes

详细演练

在本演示中,我们将使用在 Google Cloud 上运行的托管 Kubernetes 集群。

GKE Cluster Info

创建集群后,使用 Kubernetes 秘密原语存储许可信息。在本例中,我们将设置一个名为 rp-secret 的 Kubernetes 秘密对象。创建秘密对象的命令如下所示

kubectl create secret generic rp-secret 

 --from-file=license=<MY_REDIS_ENTERPRISE_LICENSE.txt 

 --from-literal=username=<MY_USERNAME> 

 --from-literal=password=<MY_PASSWORD>

该命令应输出以下内容

Redis Enterprise Kubernetes Secret

接下来,使用 yaml 文件*部署无头服务、控制器和 Redis statefulset 清单,如以下屏幕截图所示

* 当 Redis Enterprise for Kubernetes 普遍可用时,我们将发布 yaml 文件。

Redis Enterprise Kubernetes Headless Service
Redis Enterprise service
Redis Enterprise Kubernetes Controller
Redis Enterprise Kubernetes Deployment

具有所有正在运行的 Kubernetes 资源的三节点 Redis Enterprise 集群将如下所示

Redis Enterprise Kubernetes Resources

在 Kubernetes 集群上成功部署 Redis Enterprise 后,使用 Web 界面创建数据库。

Redis Enterprise Create Database Web UI

使用 Web 界面创建数据库后,Redis Enterprise 服务控制器将在 Kubernetes 服务目录中发布数据库的端点,如下面的屏幕截图所示,该屏幕截图显示了数据库 db-k8demo 的端点

Redis Enterprise Kubernetes db-k8demo database

使用 Kubernetes 服务目录中发布的数据库端点,我们使用名为 memtier_benchmark 的基准测试工具对我们的 Redis 数据库进行负载测试。memtier 工具是一个命令行实用程序,用于生成和基准测试 NoSQL 键值数据库。基准测试工具生成的负载可以在 Redis Enterprise Web 界面的指标部分看到。下面的屏幕截图显示了 memtier_benchmark 工具在 db-k8demo 数据库上生成的负载。

Redis Enterprise Memtier

总结

随着组织开始大规模使用容器,编排框架变得必要,以管理日益增加的复杂性。虽然 Kubernetes 最初是为运行无状态服务而开发的,但它也使运行诸如 Redis Enterprise 数据库之类的有状态服务变得更加容易。随着向云原生架构和微服务的快速迁移,Kubernetes 和高性能、高可用性 Redis Enterprise 数据库的结合将帮助组织在新的应用程序开发和交付时代更快地创新。我们很乐意了解您希望如何在 Kubernetes 中看到 Redis Enterprise — 请随时直接与我联系以反馈您的意见。

有关 Redis Enterprise 的更多信息,请访问我们的 技术文档发行说明 页面。