使用 Bitnami helm chart
在 K8S redis
命名空间中一键部署 Redis cluster
。
helm repo add bitnami https://charts.bitnami.com/bitnamihelm install -n redis staging bitnami/redis-cluster
记住 helm chart deployment
将为 Redis cluster
生成一个随机密码。您可以通过以下命令行查看密码:
export REDIS_PASSWORD=$(kubectl get secret --namespace redis staging-redis-cluster -o jsonpath="{.data.redis-password}" | base64 --decode)
为什么要自定义?因为默认的 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
尽管我们非常乐意使用 redis-cli
命令行工具与 Redis
集群进行交互,而且效率很高。但使用 Web UI
来实现同样的效果更加直观和高效。我们选择使用由 RedisLab
开发的 redisinsight
。 Web UI
可以作为 Deployment
部署到 K8S
中。 以下是 RedisLab
官方文档提供的稍微修改过的版本。主要区别在于增加了 PVC
(持久卷声明),这样配置就不会因为重启而丢失:
---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: redisinsight-pv-claim labels: app: redisinsight namespace: redisspec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi---apiVersion: apps/v1kind: Deploymentmetadata: 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
公众号:黑客下午茶