Redis Cluster

部署

使用 Bitnami helm chart 在 K8S redis 命名空间中一键部署 Redis cluster

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install -n redis staging bitnami/redis-cluster

查看随机生成的 Redis 密码

记住 helm chart deployment 将为 Redis cluster 生成一个随机密码。您可以通过以下命令行查看密码:

export REDIS_PASSWORD=$(kubectl get secret --namespace redis staging-redis-cluster -o jsonpath="{.data.redis-password}" | base64 --decode)

自定义 values.yaml

为什么要自定义?因为默认的 Redis cluster helm chart 配置可能不是您用例的最佳配置。

官方默认配置:

制作 values.yaml 的本地副本。您可以修改 values.yaml 中的内容,并通过运行以下命令将配置更改应用到 Redis cluster

helm upgrade -n redis -f values.yaml staging

values.yaml 中有很多配置可以自定义。下面是一个简单示例:

cluster:
init: true
## nodes:是包括副本在内的节点总数。
## 这意味着将有 3 个主节点和 3 个副本节点
##(由于 replicas 默认设置为 1,每个主节点将有 1 个副本)。
## 因此,nodes = numberOfMasterNodes + numberOfMasterNodes * replicas
nodes: 6
replicas: 1

Redisinsight

通过 Redisinsight 访问管理 Redis 集群

尽管我们非常乐意使用 redis-cli 命令行工具与 Redis 集群进行交互,而且效率很高。但使用 Web UI 来实现同样的效果更加直观和高效。我们选择使用由 RedisLab 开发的 redisinsightWeb UI 可以作为 Deployment 部署到 K8S 中。 以下是 RedisLab 官方文档提供的稍微修改过的版本。主要区别在于增加了 PVC(持久卷声明),这样配置就不会因为重启而丢失:

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redisinsight-pv-claim
labels:
app: redisinsight
namespace: redis
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redisinsight
namespace: redis
labels:
app: redisinsight
spec:
replicas: 1
selector:
matchLabels:
app: redisinsight
template:
metadata:
labels:
app: redisinsight
spec:
containers:
- name: redisinsight
image: redislabs/redisinsight:1.9.0
imagePullPolicy: IfNotPresent
securityContext:
runAsUser: 0
volumeMounts:
- name: db
mountPath: /db
ports:
- containerPort: 8001
protocol: TCP
volumes:
- name: db
persistentVolumeClaim:
claimName: redisinsight-pv-claim

将上述 YAML 保存到 redisinsight.yaml 中,通过运行以下命令将其部署到 K8S 中:

kubectl apply -f redisinsight.yaml

部署完成后,运行端口转发:

kubectl port-forward deployment/redisinsight -n redis 8001

然后,您可以通过在 Web 浏览器中打开 http://localhost:8001 来访问 redisinsight Web UI。 您可以在 UI 中单击 Connect to a Redis Database 按钮,将显示以下弹出窗口:

Host将是 K8S 控制台中可用的 redis cluster serviceIP值。Port 为默认的 redis 端口 6379Username 默认值为 defaultName 可以是你选择的任何名字。如前一节所述,需要通过kubectl 命令行从 config map 中检索密码。点击 ADD REDIS DATABASE 按钮后,它会提示你选择所有或任何一个 Redis cluster 成员作为种子节点连接到集群。你可以选择全部或其中任何一个。一旦连接配置完成,你应该能够访问一个功能齐全的 web UI 来查看和管理你刚刚安装的Redis cluster

正如您在上面的屏幕截图中看到的那样,我们刚刚配置的 Redis 集群中有 3 个主节点和 3 个从节点。它还显示每个分区中有多少 key 以及正在使用多少 memory

更多

在 K8S 中快速部署 Redis Cluster & Redisinsight

公众号:黑客下午茶

在 K8S 中快速部署 Redis Cluster & Redisinsight的更多相关文章

  1. K8S部署Redis Cluster集群

    kubernetes部署单节点redis: https://www.cnblogs.com/zisefeizhu/p/14282299.html Redis 介绍 • Redis代表REmote DI ...

  2. K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

    一.Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序 ...

  3. 教你在Kubernetes中快速部署ES集群

    摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...

  4. 部署Redis Cluster 6.0 集群并开启密码认证 和 Redis-cluster-proxy负载

    部署Redis Cluster集群并开启密码认证 如果只想简单的搭建Redis Cluster,不需要设置密码和公网访问,可以参考官方文档. 节点介绍 Cluster模式推荐最少有6个节点,本次实验搭 ...

  5. 如何用docker部署redis cluster

    前言 由于本人是个docker控,不喜欢安装各种环境,而且安装redis-trib也有点繁琐,索性用docker来做redis cluster. 本文用的是伪集群,真正的集群放到不同的机器即可.端口是 ...

  6. 手把手教你部署 Redis Cluster

    环境准备 阿里云申请3台ECS,如下: 序号 内网IP OS A 172.16.190.78 CentOS 7.6 B 172.16.242.36 CentOS 7.6 C 172.16.190.77 ...

  7. K8S环境快速部署Kafka(K8S外部可访问)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 开发环境中快速部署Oracle Essbase(Rapid deployment of oracle essbase in development envrioments)

    版本:Oracle Enterprise Performance Management System Release11.1.2.4 快速部署自动安装组件: Essbase Oracle Essbas ...

  9. docker swarm快速部署redis分布式集群

    环境准备 四台虚拟机 192.168.2.38(管理节点) 192.168.2.81(工作节点) 192.168.2.100(工作节点) 192.168.2.102(工作节点) 时间同步 每台机器都执 ...

随机推荐

  1. JS获取当前页面的网址链接

    JavaScript获取当前页面的URL .链接地址 var currUrl = decodeURIComponent(location.href.split('#')[0]); java获取方式:h ...

  2. 【LeetCode】1472. 设计浏览器历史记录 Design Browser History (Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 模拟法 日期 题目地址:https://leetcod ...

  3. 【LeetCode】422. Valid Word Square 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 拼接出每一列的字符串 日期 题目地址:https:// ...

  4. 【LeetCode】463. Island Perimeter 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 减去相交部分 参考资料 日期 题目地址:https: ...

  5. 【LeetCode】341. Flatten Nested List Iterator 解题报告(Python&C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归+队列 栈 日期 题目地址:https://lee ...

  6. [LeetCode]621. Task Scheduler 任务安排 题解

    题目描述 给定一个char数组,代表CPU需要做的任务,包含A-Z,不用考虑顺序,每个任务能在1个单位完成.但是有规定一个非负整数n代表两个相同任务之间需要至少n个时间单位.球最少数量的时间单位完成所 ...

  7. Salesforce LWC学习(三十八) lwc下如何更新超过1万的数据

    背景: 今天项目组小伙伴问了一个问题,如果更新数据超过1万条的情况下,有什么好的方式来实现呢?我们都知道一个transaction只能做10000条DML数据操作,那客户的操作的数据就是超过10000 ...

  8. [炼丹术]YOLOv5训练自定义数据集

    YOLOv5训练自定义数据 一.开始之前的准备工作 克隆 repo 并在Python>=3.6.0环境中安装requirements.txt,包括PyTorch>=1.7.模型和数据集会从 ...

  9. [opencv]GeneralProcessing_Template_Function

    // // Created by leoxae on 2019-05-08. // #ifndef OPENCVDEMO_UTILS_H #define OPENCVDEMO_UTILS_H #inc ...

  10. JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】

    全部章节   >>>> 本章目录 1.1 JavaScript 概述 1.1.1 JavaScript 简介 1.1.2 JavaScript 的概念和执行原理 1.1.3 J ...