Redis 是一个功能强大、用途广泛的开源平台,可以支持广泛的用例,包括作为主数据库运行、充当消息代理或缓存网站内容。
当您在 Kubernetes (K8) 上运行 Redis 时,该平台会变得更加强大。在 Kubernetes 上安装 Redis 可以简化部署,提高可靠性和性能。
在 Kubernetes 上部署 Redis 的先决条件
在开始 在 Kubernetes 上部署 Redis 的过程之前,您需要满足以下条件:
- Kubernetes 集群。但任何现代 Kubernetes 发行版都应支持 Redis。
- Helm。使用 Kubernetes 的包管理器 Helm 安装 Redis。如果您的系统上尚未安装 Helm,请参阅 Helm 文档以获取安装选项。
- 基本熟悉 Kubernetes。您无需成为 K8s 专家即可在 Kubernetes 上安装 Redis。但是你应该对 kubectl 和 Helm 一定的了解。
在 Kubernetes 上部署 Redis
此示例使用 Redis Helm。
步骤 1
安装 Redis Helm 。
helm install my-release oci://registry-1.docker.io/bitnamicharts/redis-cluster
步骤 2
验证 Redis Pod 是否正在运行。Redis Pod 将在完成 Helm chart 安装后自动启动。要验证 Pod 是否已成功启动,请运行以下命令。
kubectl get pods --all-namespaces
输出应包含 Redis Pod 列表,如下所示。
NAMESPACE NAME READY STATUS RESTARTS AGE
default my-release-redis-cluster-2 0/1 ContainerCreating 0 34s
default my-release-redis-cluster-5 0/1 ContainerCreating 0 34s
default my-release-redis-cluster-1 0/1 ContainerCreating 0 34s
default my-release-redis-cluster-0 0/1 ContainerCreating 0 34s
default my-release-redis-cluster-4 0/1 ContainerCreating 0 34s
default my-release-redis-cluster-3 0/1 ContainerCreating 0 34s
在输出中,Pod 仍处于 ContainerCreating 状态。如果您等待一两分钟并再次获取 Pod 列表,您应该会看到它们已转换为正在运行。
NAMESPACE NAME READY STATUS RESTARTS AGE
default my-release-redis-cluster-5 1/1 Running 0 3m16s
default my-release-redis-cluster-1 1/1 Running 0 3m16s
default my-release-redis-cluster-4 1/1 Running 0 3m16s
default my-release-redis-cluster-0 1/1 Running 0 3m16s
default my-release-redis-cluster-2 1/1 Running 0 3m16s
default my-release-redis-cluster-3 1/1 Running 0 3m16s
Pod 需要处于 Running 状态,然后才能继续连接到 Redis 集群。
步骤 3
将集群密码导出为环境变量以连接到新安装的 Redis 集群
export REDIS_PASSWORD=$(kubectl get secret --namespace "default" my-release-redis-cluster -o jsonpath="{.data.redis-password}" | base64 -d)
步骤 4
运行此命令以启动新容器以托管 Redis 客户端。这将启动容器并自动打开其中的 Bash shell。
kubectl run --namespace default my-release-redis-cluster-client --rm --tty -i --restart='Never' \
--env REDIS_PASSWORD=$REDIS_PASSWORD \
--image docker.io/bitnami/redis-cluster:7.2.4-debian-12-r11 -- bash
步骤 5
从该位置输入以下命令以完成与群集的连接。
redis-cli -c -h my-release-redis-cluster -a $REDIS_PASSWORD
现在,您处于命令提示符处,您可以在其中与 Redis 集群进行交互。例如,如果运行命令 ,则应看到如下所示的输出。CLUSTER INFO
my-release-redis-cluster:6379> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:473
cluster_stats_messages_pong_sent:475