【问题标题】:REDIS cluster without persistence on KUBERNETES在 KUBERNETES 上没有持久性的 REDIS 集群
【发布时间】:2020-02-16 07:21:07
【问题描述】:

我正在尝试在 kubernetes 集群上设置一个没有持久性的 redis 集群。有没有办法在没有持久性的情况下做到这一点。 pod 重启后我需要自动恢复。有没有简单的方法来做到这一点?

尝试在启动时使用脚本更新节点信息,但由于重新启动的 pod 提供了一个新的静态私有 ip,因此该脚本实际上不起作用。 仅供参考,我创建了一个有状态集和此处引用的配置图:https://github.com/rustudorcalin/deploying-redis-cluster 和卷的空目录设置。 参考:https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/

【问题讨论】:

  • 为了恢复,您需要将 Redis pod 的状态和数据存储在某个位置,即使您的 Redis pod 死机,它也可以保留。 K8s 为此提供了 StatefulSets 和 PersistentVolume。这可能并不“容易”,但如果你不使用它们,你将不得不提供一个没有 PersistentVolume 的类似机制,我认为这会更复杂。

标签: kubernetes redis


【解决方案1】:

你不能这样做,当一个 pod 重新启动时,你的 redis 的状态是很多的。即使有了持久性存储也不是那么容易。您将需要某种编排来管理和重新连接 Redis。

【讨论】:

    【解决方案2】:

    您的意思是实际的集群模式还是只是在没有持久性的情况下运行 Redis?这是我通常使用的。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ...
      namespace: ...
      labels:
        app.kubernetes.io/name: redis
    spec:
      replicas: 1
      selector:
        matchLabels:
          app.kubernetes.io/name: redis
      template:
        metadata:
          labels:
            app.kubernetes.io/name: redis
        spec:
          containers:
          - name: default
            image: redis:latest
            imagePullPolicy: Always
            ports:
            - containerPort: 6379
            args:
            - "--save"
            - ""
            - "--appendonly"
            - "no"
    

    【讨论】:

    • 我在集群模式下使用redis。在 kubernetes 环境和自动故障转移/恢复上联网看起来很有挑战性。
    猜你喜欢
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 2019-02-03
    • 2019-07-13
    • 2019-03-29
    • 2020-03-26
    • 2020-10-01
    • 2018-07-01
    相关资源
    最近更新 更多