您的位置:首页 > 数据库 > Redis

在 K8S 中快速部署 Redis Cluster & Redisinsight

2022-01-24 14:47 796 查看

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
开发的
redisinsight
Web 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 service
IP
值。
Port
为默认的
redis
端口
6379
Username
默认值为
default
Name
可以是你选择的任何名字。如前一节所述,需要通过
kubectl
命令行从
config map
中检索密码。点击
ADD REDIS DATABASE
按钮后,它会提示你选择所有或任何一个
Redis cluster
成员作为种子节点连接到集群。你可以选择全部或其中任何一个。一旦连接配置完成,你应该能够访问一个功能齐全的
web UI
来查看和管理你刚刚安装的
Redis cluster

正如您在上面的屏幕截图中看到的那样,我们刚刚配置的

Redis
集群中有
3
个主节点和
3
个从节点。它还显示每个分区中有多少
key
以及正在使用多少
memory

更多

在 K8S 中快速部署 Redis Cluster & Redisinsight

公众号:黑客下午茶
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: