使用Redis Enterprise玩转Kubernetes和Redis

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 本文讲的是使用Redis Enterprise玩转Kubernetes和Redis【编者的话】本文介绍了Redis Enterprise的使用入门。
本文讲的是使用Redis Enterprise玩转Kubernetes和Redis【编者的话】本文介绍了Redis Enterprise的使用入门。

Kubernetes简化了容器编排,并得到了广泛应用。使用最新的Redis Enterprise Docker容器,可以很容易地搭建一个Redis Entreprise集群。

【3 天烧脑式 Docker 训练营 | 上海站】随着Docker技术被越来越多的人所认可,其应用的范围也越来越广泛。本次培训我们理论结合实践,从Docker应该场景、持续部署与交付、如何提升测试效率、存储、网络、监控、安全等角度进行。

在以下步骤中,我们将使用 4.5 版本的Redis Enterprise容器。你可以在 Docker Hub 上获取该镜像的更多信息,以及如何在本地部署该容器。

在谷歌云上使用Kubernetes部署Redis Enterprise

我们将会通过以下步骤来搭建Redis Enterprise集群
  • 第一步: 在谷歌云上创建Kubernetes集群
  • 第二步: 在Kubernetes集群中部署Redis Enterprise容器
  • 第三步: 搭建Redis Enterprise集群
  • 第四步:创建一个Redis数据库,并测试连通性

注意: 我们故意简化了部署过程,非常适合Kubernetes和Redis Enterprise的快速入门。当然,这是不能用于生产环境的。

要求:以下步骤是在MacOS上使用最新的 谷歌云SDK kubectl工具 。在其他操作系统上,具体步骤略有不同。

第一步: 在谷歌云上创建Kubernetes集群

首先,搭建好命令行环境。
  • 登录你的谷歌云环境。

gcloud auth login

  • 获取默认项目的ID。你可以使用以下命令列举并设置项目前后文。注意,如果你没有强制指定ID的话,那么你就会得到类似speedy-lattice-166011这样的随机名字。

gcloud projects list gcloud config set project speedy-lattice-166011

  • 获得默认的区域名字(zone/geography),在该区域中部署你的集群。你可以使用以下命令列举并设置区域。

gcloud compute zones list
gcloud config set compute/zone europe-west1-c} 

现在搭建并运行Kubernetes集群。

在谷歌云控制台中,在左边的导航栏中点击 Container Engine ,创建一个新集群。
01.jpeg

给你的Kubernetes集群取一个名字,并将集群大小设置为3个节点。我们会使用这3个节点来部署Redis Enterprise集群。我建议你将每个节点设置为2个核和7GB内存以上。
02.jpeg

注意:创建集群需要几分钟。在继续以下步骤之前,请确保Kubernetes集群已经创建成功。

从最佳实践来说,Redis Enterprise pods应该分散在Kubernetes集群的不同物理节点上,从而保证在节点故障时的高可用性。如果将多个Redis Enterprise节点放置在同一个物理节点上,可能造成多个节点同时宕机并造成数据丢失。为了保证这种分散性,我们需要更新Kubernetes集群至1.6.2版本以上。你可以在刚刚部署的Kubernetes集群的details页面上升级版本。
03.jpeg

注意:顺便说一下,如果你更喜欢使用命令行的话,你也可以使用以下命令。
gcloud container clusters create cluster-1 --num-nodes=3 -m n1-standard-2
gcloud container clusters upgrade cluster-1 --master --cluster-version=1.6.2

最后,你需要运行Kubernetes控制台,并启动Kubernetes代理。在终端窗口中,运行以下命令。

连接Kubernetes集群:
gcloud container clusters get-credentials cluster-1

输出如下:
# Fetching cluster endpoint and auth data.
# kubeconfig entry generated for cluster-1.

最后,启动Kubernetes代理:
kubectl proxy

第二步: 在Kubernetes集群中部署Redis Enterprise容器

你可以使用容器YAML文件来搭建Redis Enterprise集群。YAML示例文件在
kubectl apply -f redis-enterprise.yaml

如果部署成功了,输出如下:
# deployment "redispack-deployment" created 
# service "redispack" created 

现在,你可以看到Kubernetes集群中部署的容器节点了。运行以下命令来查看节点列表:
kubectl get po 

输出如下:
NAME READY STATUS RESTARTS AGE
redispack-deployment-709212938-765lg 1/1 Running 0 7s
redispack-deployment-709212938-k8njr 1/1 Running 0 7s
redispack-deployment-709212938-kcjd7 1/1 Running 0 7s

第三步:搭建Redis Enterprise集群

我们现在已经准备好了,可以创建Redis Enterprise集群。这里有一个小小的更改,从而使得容器网络正常运行。我们需要将CSS绑定在 0.0.0.0 。你需要在每个容器中,运行以下命令(pod名字可以从 kubectl get po 的输出中获得):
kubectl exec -it redispack-deployment-709212938-765lg -- bash
# sudo su -
# sed ‘s/bind 127.0.0.1/bind 0.0.0.0/g’ -i /opt/redislabs/config/ccs-redis.conf
# cnm_ctl restart} 

部署第一个节点或者Redis Enterprise集群:
kubectl exec -it redispack-deployment-709212938-765lg "/opt/redislabs/bin/rladmin" cluster 
create name cluster.local username cihan@redislabs.com password redislabs123 flash_enabled

我们需要第一个节点的IP地址,使得其他节点也能加入到集群中。
kubectl exec -it redispack-deployment-709212938-765lg ifconfig | grep "inet addr"

在我的例子中,输出是10.0.2.10。然后,把剩下的两个节点加入到集群中:
kubectl exec -it redispack-deployment-709212938-k8njr "/opt/redislabs/bin/rladmin" cluster join 
username cihan@redislabs.com password redislabs123 nodes 10.0.2.10 flash_enabled

kubectl exec -it redispack-deployment-709212938-kcjd7 "/opt/redislabs/bin/rladmin" cluster join 
username cihan@redislabs.com password redislabs123 nodes 10.0.2.10 flash_enabled

第四步:创建一个Redis数据库,并测试连通性

下面,我们就可以创建数据库,并连接上。以下 curl 命令可以用来在端口 12000 上创建数据库。数据库的名字为 sample-db
kubectl exec -it redispack-deployment-709212938-765lg bash
# curl -k -u "cihan@redislabs.com:redislabs123" --request POST --url "https://localhost:9443/v1/bdbs" --header 'content-type: application/json' --data '{"name":"sample-db","type":"redis","memory_size":1073741824,"port":12000}'  

我们可以使用 redis-cli 工具来测试数据库连接性,如以下命令:

注意:你可以使用以下命令来删除集群:
gcloud container clusters delete cluster-1


原文链接:Getting Started With Kubernetes and Redis using Redis Enterprise(翻译:夏彬)

原文发布时间为:2017-05-30

本文作者:夏彬

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:使用Redis Enterprise玩转Kubernetes和Redis

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
缓存 NoSQL 网络安全
基于Redis6.2.6版本部署Redis Cluster集群
基于Redis6.2.6版本部署Redis Cluster集群 文章目录 基于Redis6.2.6版本部署Redis Cluster集群 1.Redis6.2.6简介以及环境规划 2.二进制安装Redis程序 2.1.二进制安装redis6.2.6 2.2.创建Reids Cluster集群目录 3.配置Redis Cluster三主三从交叉复制集群 3.1.准备六个节点的redis配置文件 3.2.将六个节点全部启动 3.3.配置集群节点之间相互发现 3.4.为集群中的充当Master的节点分配槽位 3.5.配置三主三从交叉复制模式 4.快速搭建Redis Cluster集群
2075 1
基于Redis6.2.6版本部署Redis Cluster集群
|
Kubernetes NoSQL 测试技术
在 K8S 中快速部署 Redis Cluster & Redisinsight
在 K8S 中快速部署 Redis Cluster & Redisinsight
1470 0
在 K8S 中快速部署 Redis Cluster & Redisinsight
|
10月前
|
存储 缓存 NoSQL
Redis Cluster
Redis Cluster
72 1
|
存储 Kubernetes NoSQL
Kubernetes(k8s)上部署redis5.0.14(上)
Kubernetes(k8s)上部署redis5.0.14
268 0
|
Kubernetes NoSQL Redis
Kubernetes(k8s)上部署redis5.0.14(下)
Kubernetes(k8s)上部署redis5.0.14(下)
220 0
|
存储 Prometheus Kubernetes
Kubernetes 集群部署 Redis + redis_exporter (单点)
在使用 Kubernetes 部署应用后,一般会习惯与将应用的配置文件外置,用 ConfigMap 存储,然后挂载进入镜像内部。这样,只要修改 ConfigMap 里面的配置,再重启应用就能很方便就能够使应用重新加载新的配置,很方便。
1551 1
Kubernetes 集群部署 Redis + redis_exporter (单点)
|
NoSQL 算法 Redis
知道 Redis-Cluster 么?说说其中可能不可用的情况
知道 Redis-Cluster 么?说说其中可能不可用的情况
知道 Redis-Cluster 么?说说其中可能不可用的情况
|
存储 负载均衡 NoSQL
Undermoon - 基于 Redis Cluster Protocol 的自管理 Redis 集群系统
Undermoon - 基于 Redis Cluster Protocol 的自管理 Redis 集群系统
167 0
Undermoon - 基于 Redis Cluster Protocol 的自管理 Redis 集群系统
|
存储 缓存 监控
带你剖析Redis Cluster
Redis 的集群模式是否让你眼花缭乱呢?为什么有的时候三个,有的时候两个,有的时候六个,九个。其实当我们系统很小时有一个就够了,但是我们往往想做到读写分离,为数据搞一个备份,那么主从复制就来了。但是呢主从复制下,主节点挂了,只能手动去设置主节点,不能自动进行,这时哨兵模式就出现了,通过哨兵监控各个节点,主机挂了,哨兵感知到,就会有一个哨兵发起投票选举自己为领导者,从而由自己进行故障转移。但是主从加哨兵只能保证高可用与读写分离,并不能解决写并发的压力,然后多主节点的redis cluster就出现了,将三种模式整合,就构成最小六个节点的高并发,高可用的redis集群。
230 0
|
存储 运维 NoSQL
Redis之Cluster
Redis之Cluster
1189 0
Redis之Cluster