首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在配置了持久存储之后,VerneMq也不会在重新启动时保留消息。

即使在配置了持久存储之后,VerneMq也不会在重新启动时保留消息。
EN

Stack Overflow用户
提问于 2022-09-29 09:08:26
回答 1查看 43关注 0票数 0

我们正在运行一个包含两个VerneMq代理的集群。如果我们一次启动一个代理,一切正常,但是一旦我们需要启动两个代理,所有保留的消息就会丢失。

为了解决这个问题,我们尝试用vernemq配置持久卷,我们可以看到声明被绑定到vernemq并且卷被创建了。即使在此之后,当我们通过重新启动两个吊舱来测试我们的场景时,我们仍然发现保留的消息没有同步。这将导致数据丢失。

下面是我们用来创建存储类的配置:

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azure-storage
provisioner: kubernetes.io/azure-disk
parameters:
  storageaccounttype: Standard_LRS
  kind: managed

我们的vernemq配置如下所示:

代码语言:javascript
复制
{{- if .Values.persistentVolume.enabled }}
  volumeClaimTemplates:
    - metadata:
        name: data
        annotations:
        {{- range $key, $value := .Values.persistentVolume.annotations }}
          {{ $key }}: {{ $value }}
        {{- end }}
      spec:
        accessModes:
        {{- range .Values.persistentVolume.accessModes }}
          - {{ . | quote }}
        {{- end }}
        resources:
          requests:
            storage: {{ .Values.persistentVolume.size }}
      {{- if .Values.persistentVolume.storageClass }}
      {{- if (eq "-" .Values.persistentVolume.storageClass) }}
        storageClassName: ""
      {{- else }}
        storageClassName: "{{ .Values.persistentVolume.storageClass }}"
      {{- end }}
      {{- end }}
{{- else }}
        - name: data
{{- end }}

对PVCs进行了适当的处理。Kubectl get pvc返回我们创建的pvc:

代码语言:javascript
复制
data-vernemq-0             Bound    xxx   5Gi        RWO            default        19h
data-vernemq-1             Bound    xxx   5Gi        RWO            default        18h

存储类:

代码语言:javascript
复制
NAME                    PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
azure-storage           kubernetes.io/azure-disk   Delete          Immediate              false                  19h

我在配置中遗漏了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-29 11:17:45

我还建议使用这个提供程序: disk.csi.azure.com .Starting,从1.21开始,默认情况下,这个提供程序是可用的。另外,为了进行测试,您可以使用指向存储帐户的存储类,然后可以查看该结束符将创建的文件。我能想到的另一件事是在存储库中添加下面的代码:

代码语言:javascript
复制
mountOptions:
  - dir_mode=0777
  - file_mode=0777
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73892998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档