Undermoon Operator - 安装并管理 Redis Cluster

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Undermoon Operator - 安装并管理 Redis Cluster

用法



构建 Helm Charts


make build-helm


然后就可以在当前目录下看到如下包:

  • undermoon-operator-0.4.1.tgz
  • undermoon-cluster-0.4.1.tgz
  • undermoon-scheduler-0.4.1.tgz


运行 Operator


运行 undermoon-operator:请注意,您可以更改名称 my-undermoon-operator


helm install my-undermoon-operator undermoon-operator-0.4.1.tgz


创建一个 Undermoon Cluster


通过安装 helm charts 包创建一个 undermoon 集群:


helm install \
    --set 'cluster.clusterName=my-cluster-name' \
    --set 'cluster.chunkNumber=1' \
    --set 'cluster.maxMemory=2048' \
    --set 'cluster.port=5299' \
    my-cluster \
    -n my-namespace \
    undermoon-cluster-0.4.1.tgz


此处的字段:


  • clusterName: 集群的名称。应小于 30 字节。不能修改。
  • chunkNumber: 用于指定集群的 chunk number。一个块总是由 2master2replica 组成。修改它以扩展集群。
  • maxMemory: 以 MB 为单位指定每个 Redis 节点的 maxmemory 配置。修改此项将触发滚动升级。
  • port: Redis 客户端连接的服务端口。这是无法修改的。

然后就可以通过 Kubernetes 集群内部的 my-cluster:5299 访问该服务:


# 这只能在 Kubernetes 集群内运行。
redis-cli -h my-cluster.my-namespace.svc.cluster.local -p 5299 -c get mykey


扩展集群


kubectl edit undermoon/my-cluster
# 更改 `chunkNumber`,保存并退出。


然后集群会自动扩展集群。


使用 undermoon-scheduler


默认情况下,undermoon 不保证同一个 shard 中的 masterreplicaredis 实例不在同一个节点。我们需要使用基于 scheduler framework 的 undermoon-scheduler 来实现。


这将安装 undermoon-scheduler 作为第二个调度程序。您可能想要替换默认调度程序。有关更多详细信息,请参阅 scheduler-plugins 的文档。


helm install example-scheduler -n my-namespace "undermoon-scheduler-0.4.1.tgz"


然后在安装 undermoon-cluster 时指定 schedulerName


helm install \
    --set 'cluster.clusterName=my-cluster-name' \
    --set 'cluster.chunkNumber=1' \
    --set 'cluster.maxMemory=2048' \
    --set 'cluster.port=5299' \
    --set "schedulerName=undermoon-scheduler" \
    my-cluster \
    -n my-namespace \
    undermoon-cluster-0.4.1.tgz


相关文章
|
3月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
274 2
|
4月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
14天前
|
NoSQL Java 网络安全
SpringBoot启动时连接Redis报错:ERR This instance has cluster support disabled - 如何解决?
通过以上步骤一般可以解决由于配置不匹配造成的连接错误。在调试问题时,一定要确保服务端和客户端的Redis配置保持同步一致。这能够确保SpringBoot应用顺利连接到正确配置的Redis服务,无论是单机模式还是集群模式。
104 5
|
30天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
235 5
|
7月前
|
NoSQL 数据可视化 关系型数据库
安装 Redis
本文主要介绍了Linux系统下Redis的安装步骤,包括卸载旧版本、下载新版本、编译安装以及配置启动等详细操作,并解释了Redis默认端口6379的由来。同时,文章还简要说明了Windows环境下Redis的下载与服务安装方法。最后,推荐了几款Redis可视化管理工具,如RedisView、QuickRedis、AnotherRedisDesktopManager和RedisPlus,提供了它们的功能特点及下载链接,方便用户根据需求选择合适的工具进行数据库管理。
493 1
|
6月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
892 16
|
6月前
|
JSON NoSQL Redis
在Rocky9系统上安装并使用redis-dump和redis-load命令的指南
以上步骤是在Rocky9上使用redis-dump和redis-load命令顺利出行的秘籍。如果在实行的过程中,发现了新的冒险和挑战,那么就像一个勇敢的航海家,本着探索未知的决心,解决问题并前进。
200 14
|
8月前
|
NoSQL Java Redis
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 安装
本教程介绍在 VMware 虚拟机(CentOS 7)或阿里云服务器中安装 Redis 的过程,包括安装 gcc 编译环境、下载 Redis(官网或 wget)、解压安装、修改配置文件(如 bind、daemonize、requirepass 等设置)、启动 Redis 服务及测试客户端连接。通过 set 和 get 命令验证安装是否成功。适用于初学者快速上手 Redis 部署。
188 0
|
存储 NoSQL 算法
深入理解Redis分片Cluster原理
本文深入探讨了Redis Cluster的分片原理,作为Redis官方提供的高可用性和高性能解决方案,Redis Cluster通过数据分片和横向扩展能力,有效降低单个主节点的压力。
深入理解Redis分片Cluster原理
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
178 0