Kubernetes 背景
容器化使开发团队能够快速移动、高效地部署软件并大规模运行。Kubernetes 提供自动化的容器编排以及在高可用性、分布式环境中管理容器的功能。该平台处理扩展、配置和部署新版本的映像,并简化应用程序部署和管理。在 Redis,我们正在积极开发基于 Kubernetes 的部署,该部署基于 Redis Enterprise 5.x。
期待本文内容
在之前的博文中,我谈到了 Kubernetes 原语 以及 本地 Kubernetes 开发。在这篇文章中,我将带您逐步了解在 Kubernetes 上部署 云原生 Redis Enterprise 的简单 4 步过程:
详细演练
在本演示中,我们将使用在 Google Cloud 上运行的托管 Kubernetes 集群。
创建集群后,使用 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>
该命令应输出以下内容
接下来,使用 yaml 文件*部署无头服务、控制器和 Redis statefulset 清单,如以下屏幕截图所示
* 当 Redis Enterprise for Kubernetes 普遍可用时,我们将发布 yaml 文件。
具有所有正在运行的 Kubernetes 资源的三节点 Redis Enterprise 集群将如下所示
在 Kubernetes 集群上成功部署 Redis Enterprise 后,使用 Web 界面创建数据库。
使用 Web 界面创建数据库后,Redis Enterprise 服务控制器将在 Kubernetes 服务目录中发布数据库的端点,如下面的屏幕截图所示,该屏幕截图显示了数据库 db-k8demo 的端点
使用 Kubernetes 服务目录中发布的数据库端点,我们使用名为 memtier_benchmark 的基准测试工具对我们的 Redis 数据库进行负载测试。memtier 工具是一个命令行实用程序,用于生成和基准测试 NoSQL 键值数据库。基准测试工具生成的负载可以在 Redis Enterprise Web 界面的指标部分看到。下面的屏幕截图显示了 memtier_benchmark 工具在 db-k8demo 数据库上生成的负载。
总结
随着组织开始大规模使用容器,编排框架变得必要,以管理日益增加的复杂性。虽然 Kubernetes 最初是为运行无状态服务而开发的,但它也使运行诸如 Redis Enterprise 数据库之类的有状态服务变得更加容易。随着向云原生架构和微服务的快速迁移,Kubernetes 和高性能、高可用性 Redis Enterprise 数据库的结合将帮助组织在新的应用程序开发和交付时代更快地创新。我们很乐意了解您希望如何在 Kubernetes 中看到 Redis Enterprise — 请随时直接与我联系以反馈您的意见。