在K8S中快速部署RedisCluster&Redisinsight

博客 动态
0 294
羽尘
羽尘 2022-01-24 15:32:34
悬赏:0 积分 收藏

在 K8S 中快速部署 Redis Cluster & Redisinsight

Redis Cluster

部署

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

helm repo add bitnami https://charts.bitnami.com/bitnamihelm 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 配置可能不是您用例的最佳配置。

官方默认配置:

  • https://github.com/bitnami/charts/blob/master/bitnami/redis-cluster/values.yaml

制作 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: 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 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

公众号:黑客下午茶
posted @ 2022-01-24 14:47 为少 阅读(17) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员