如何在Kubernetes上部署Redis集群(详细分布指南)

Kubernetes部署Redis集群教程介绍Kubernetes如何部署Redis集群?Redis 是一种流行的NoSQL 数据库和支持多种抽象数据结构的内存数据存储。这些包括字符串、列表、散列、集合、流等。Redis 提供了访问可变数据结构的语法,允许多个进程以共享方式读取和写入它们。
Redis 集群是一组 Redis 实例,可自动跨节点对数据进行分片。使用集群使用户能够在节点之间拆分他们的数据集,并在某些节点出现故障时继续运行数据库。
如何在Kubernetes上部署Redis集群?本教程将向你展示如何使用 ConfigMap 和 Helm 在 Kubernetes 上部署 Redis 集群。
先决条件

  • 由两个或多个节点组成的Kubernetes 集群
  • 安装了 Helm 3
  • 已安装 kubectl 1.14 或更高版本
注意:如果你使用的是 Minikube,你可以通过--nodesstart命令中添加选项来模拟双节点集群:
minikube start --nodes 2

使用 ConfigMap 在 Kubernetes 上部署 RedisKubernetes如何部署Redis集群?以下步骤说明了如何配置 Redis 缓存和包含 Redis 实例的 Pod。
  1. 使用文本编辑器,创建将存储 Redis 配置的 ConfigMap  YAML。
nano redis-conf.yaml

2. 在该data.redis-config部分中指定你的 Redis 配置。
apiVersion: v1 kind: ConfigMap metadata: name: test-redis-config data: redis-config: | maxmemory 2mb maxmemory-policy allkeys-lru

上面的示例配置设置了maxmemory指令并告诉 Redis 为数据集使用最大 2 MB 的存储空间。该maxmemory-policy指令定义了达到内存限制时要应用的过程。allkeys-lru首先删除最近较少使用的 (LRU) 键。
3. 保存文件并退出。
4. 通过应用 YAML 文件创建 ConfigMap。
kubectl apply -f redis-conf.yaml

系统确认操作成功。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
5. 创建 Redis pod 清单。
nano redis-pod.yaml

6. Kubernetes部署Redis集群教程:指定你的 pod 配置。
apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis:5.0.4 command: - redis-server - "/redis-master/redis.conf" env: - name: MASTER value: "true" ports: - containerPort: 6379 resources: limits: cpu: "0.1" volumeMounts: - mountPath: /redis-master-data name: data - mountPath: /redis-master name: config volumes: - name: data emptyDir: {} - name: config configMap: name: test-redis-config items: - key: redis-config path: redis.conf

在上面的示例中,清单定义了config卷并将其安装在/redis-masterpod 上的目录中。spec.volumes.items然后,该部分redis-config将先前创建的 ConfigMap 中的密钥公开为redis.conf文件。
7. 保存文件并退出。
8. 使用kubectl应用 pod 清单。
kubectl apply -f redis-pod.yaml

系统确认pod创建成功。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
9. 如何在Kubernetes上部署Redis集群?检查pod状态。
kubectl get pod

如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
10. 输入创建的 pod  kubectl exec
kubectl exec -it redis -- redis-cli

Redis 服务器控制台出现:
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
11.使用PING命令检查服务器是否在线。
PING

如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
如果服务器与控制台通信,它将PONG作为答案返回。
注意:部署Bare Metal Cloud 服务器以确保 Redis 集群的高可用性和最高性能。使用起价仅为 0.10 美元/小时的服务器实现可靠的基础架构!
使用 Helm Chart 在 Kubernetes 上部署 RedisKubernetes如何部署Redis集群?Helm 提供了一种使用预制Helm chart设置 Redis 集群的快速方法。
1.添加包含要安装的 Redis 图表的 Helm 存储库。
helm repo add [ repo-name] [ repo-address]

Kubernetes部署Redis集群教程:本文使用 Bitnami 存储库中提供的 Redis 图表。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
2. 更新本地 Helm 存储库。
helm repo update

如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
3.helm install用于安装图表。基本命令如下:
helm install redis-test bitnami/redis

重要提示:如果你在 Minikube 上安装图表,CrashLoopBackOff由于未绑定的数量声明,pod 卡在事件中的情况并不少见。为了防止这种情况,使用--set选项,并设置persistence.storageClassnfs-client两个吊舱。
如何在Kubernetes上部署Redis集群?由于Redis默认部署了非管理卷权限,Redis pod可能无法与服务器通信。通过设置volumePermissions为 来解决此问题true
最终helm install命令应如下所示:
helm install redis-test --set persistence.storageClass=nfs-client,redis.replicas.persistence.storageClass=nfs-client bitnami/redis --set volumePermissions.enabled=true

如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
4. 将Redis密码导出为环境变量。
export REDIS_PASSWORD=$(kubectl get secret --namespace default redis-test -o jsonpath="{.data.redis-password}" | base64 --decode)

5. 创建一个用于访问数据库的 Redis 客户端 pod。
kubectl run --namespace default redis-client --restart='Never'--env REDIS_PASSWORD=$REDIS_PASSWORD--image docker.io/bitnami/redis:6.2.5-debian-10-r63 --command -- sleep infinity

系统确认redis-clientpod的创建。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
6. 输入客户端 pod  kubectl exec
kubectl exec --tty -i redis-client --namespace default -- bash

出现客户端控制台。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
7. 如何在Kubernetes上部署Redis集群?使用以下redis-cli命令访问Redis主实例:
redis-cli -h redis-test-master -a $REDIS_PASSWORD

显示主实例的控制台。
如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
8. 要访问副本,请使用相同的命令,但更改目标。
redis-cli -h redis-test-replicas -a $REDIS_PASSWORD

9. 使用PING命令测试与服务器的连接。
PING

如何在Kubernetes上部署Redis集群(详细分布指南)

文章图片
PONG响应确认服务器监听。
Kubernetes部署Redis集群教程结论Kubernetes如何部署Redis集群?完成本教程后,你应该知道如何手动配置 Redis 缓存和 Pod,以及如何使用 Helm 部署 Redis。
【如何在Kubernetes上部署Redis集群(详细分布指南)】有关类似于 Redis 的更流行工具,请阅读我们关于最佳数据管理软件的文章。

    推荐阅读