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

加入我们参加 Redis 发布会

使用 Minikube 和 Redis 企业版进行本地 Kubernetes 开发

Kubernetes 是一种开源容器编排系统,用于部署、扩展和管理容器化应用程序。Kubernetes 是由云原生计算基金会 (CNCF) 托管的项目。在非常高的层面上,它包含两种类型的资源:主节点(它是集群协调器)和节点,节点是运行容器化应用程序的 worker。

Minikube 是一个用于在本地机器上运行 Kubernetes 集群的工具。Minikube 是您笔记本电脑上 VM 内的单节点 Kubernetes 集群。Minikube 可用于尝试 Kubernetes 或日常开发。

Redis 企业版产品扩展了 Redis,Redis 是最流行的与 Docker 容器一起使用的数据库。Redis 企业版为组织提供高性能、低延迟和高可用性。这篇文章将向您展示在本地笔记本电脑上设置 Minikube 并运行 3 节点 Redis 企业版集群所需的基本步骤。

安装

我们将使用 homebrew 包管理器在您的本地笔记本电脑上安装 minikube 和 kubernetes 命令行工具。

$ brew cask install minikube
$ brew install kubernetes-cli

启动 Minikube

Minikube 提供更改虚拟机 (VM) 驱动程序的功能。在本博文中,我们使用了 vmwarefusion 驱动程序。

$ minikube start --memory 12288 --disk-size 30g --vm-driver vmwarefusion

该命令的输出应类似于

Minikube startup output
Minikube 启动输出

验证 Minikube 安装

我们将使用 Kubernetes 命令行工具 kubectl 来验证 Minikube 安装。您可以使用以下命令验证 Minikube 安装

$ kubectl cluster-info

输出应类似于

Kubernetes master is running at https://192.168.21.147:8443

Minikube 上的 Redis 企业版

安装

Minikube 现在已在您的笔记本电脑上运行,kubectl cli 能够成功查询主节点以获取集群状态。我们现在将在 Minikube 中部署具有三个副本集的 Redis 企业版服务。Redis 企业版部署和服务的 yaml 配置可以在此处找到。

我们将使用 yaml 在 Kubernetes 集群中创建部署和服务。

$ kubectl apply -f redis-enterprise5.yaml
deployment "redis5" created
service "redis5" created

我们可以通过发出以下命令来验证是否创建了三个 pod

Kubectl get pods -o wide
Output of kubectl get pods
输出:kubectl get pods -o wide

集群配置的先决条件

我们需要将 CCS 的绑定从本地环回地址 127.0.0.1 更改为 0.0.0.0。

$ kubectl exec -it <name-of-your-pod> bash
$ sed 's/bind 127.0.0.1/bind 0.0.0.0/g' -i /opt/redis/config/ccs-redis.conf
$ /opt/redis/bin/supervisorctl restart ccs

集群配置

我们需要通过登录 pod 并发出 create cluster 命令来将 Redis 企业版集群设置为主节点。

$ kubectl exec -it <name-of-your-pod> bash

我们将使用 rladmin 实用程序来创建新集群

root@redis5-7749c97f4d-vk6rn:~# /opt/redis/bin/rladmin cluster create name cluster.local username <your_email_addr> password <your_passwd>

我们将使用 rladmin 实用程序将 2 个节点加入集群

root@redis5-7749c97f4d-hcggk:~#/opt/redis/bin/rladmin cluster join username <your_email_addr> password <master_password> nodes <master_IP_addr>

root@redis5-7749c97f4d-p74nx:~#/opt/redis/bin/rladmin cluster join username <your_email_addr> password <master_password> nodes <master_IP_addr>

在集群上创建数据库

我们将使用 Redis 企业版的 Rest API 在主节点上创建数据库

curl -k -u "vick@redis.com:<password>" --request POST --url "https://localhost:9443/v1/bdbs" --header 'content-type: application/json' --data '{"name":"demo-db","type":"redis","memory_size":536870912,"port":11000,"data_persistence":"aof","replication":true,"shards_placement":"sparse","proxy_policy":"all-master-shards"}'

我们可以使用 Redis 企业版下载中包含的 rladmin 实用程序查看集群和数据库的状态

rladmin cluster status
rladmin cluster status
  • 您可以在我们的文档页面上了解有关 Redis 企业版的分片放置策略和代理策略的更多信息。
  • Redis 企业版默认情况下包含复制和持久性。您可以在我们的 Redis 企业版数据库文档页面上了解有关持久性的更多信息。

访问 Redis 企业版仪表板

您可以通过在本地端口和 pod 端口之间设置安全隧道来访问 Redis 企业版仪表板(在端口 8443 上运行)。建立隧道后,您可以在 https://127.0.0.1:8443 上访问 Redis 企业版仪表板

kubectl port-forward :

例如:kubectl port-forward redis5-58dc568c56-7qk22 8443:8443

Redis Enterprise Dashboard
Redis 企业版仪表板 - 节点
Redis Enterprise Dashboard - Database
Redis 企业版仪表板 - 数据库

本地访问 Redis 企业版

您可以使用节点的 IP 地址和数据库创建期间指定的端口连接到您的数据库

$ redis-cli -h <ip_addr_of master_node> -p <11000>

下一步

我们正在开发一个 Kubernetes 原生 Redis 企业版容器,该容器将利用 Kubernetes 1.8 及更高版本中引入的新基元。我们正在努力发布新版本的 Redis 企业版容器镜像,该镜像将利用新的持久集和存储类基元,同时提供更好的集群引导体验。在此期间,了解有关 Redis 企业版产品的更多信息。