在 helm 中安装或升级值时如何自动缩放 PersistentVolume = 副本使用 Statefulset

发布于 2025-01-10 23:48:05 字数 1207 浏览 0 评论 0原文

我使用 Statefulset 创建了 Helm。在 Statefulset 中,我将卷挂载到 pod,使用volumeClaimTemplates 和给定的 storageClassName A。

当值文件中的副本 = 1 时,它将使用 pv.yaml 从 storageClassName 自动创建 PV,然后 pv 自动创建 pvc

当值文件中的副本 >= 2 时,pv.yaml 仅创建 1 个 pv,在这种情况下会出错。例如:如果副本 = 2 =>创建 2 个 pv,否则如果副本 = 4 =>创建 4 个 pv

我如何设置功能自动缩放或创建 pv 如果副本 >= 2 (当安装和升级 helm 时,如果修改副本参数) 这是我掌舵的 manisfest statefulset.yaml。我使用volumeClaimTemplates 在每次增加使用副本时自动创建pvc。但我不知道当每次增加在 helm 中使用副本时如何动态创建 pv

volumeMounts:
          - name: data
            mountPath: {{ .Values.volumeClaimTemplates.mountPath }}
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      storageClassName: local-storage-immediate
      accessModes: {{ .Values.volumeClaimTemplates.accessModes }}
      resources:
        requests:
          storage: {{ .Values.volumeClaimTemplates.size }}

这是我的清单 PV.yaml。我不知道如何在 yalm 中创建它来自动调整每个 pod 增加的 PV,而是手动创建它

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mdcore-core-data
  labels:
    type: local
spec:
  storageClassName: "local-storage-immediate"
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

i created Helm use Statefulset. In Statefulset i mount volume to pod use volumeClaimTemplates with storageClassName A given.

With replica = 1 in values file, it will auto create PV from storageClassName with pv.yaml then pv auto create pvc

With replica >= 2 in values file, pv.yaml only create 1 pv and it will wrong in this case. Ex: If replica = 2 => create 2 pv, else if replica = 4 => create 4 pv

How i setting function auto scale or create pv if replica >= 2 (When install and upgrade helm if modify replica param)
This is my manisfest statefulset.yaml in helm. I use volumeClaimTemplates to auto create pvc when per increase use replicas. But i dont know how to dynamic create pv when per increase use replicas in helm

volumeMounts:
          - name: data
            mountPath: {{ .Values.volumeClaimTemplates.mountPath }}
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      storageClassName: local-storage-immediate
      accessModes: {{ .Values.volumeClaimTemplates.accessModes }}
      resources:
        requests:
          storage: {{ .Values.volumeClaimTemplates.size }}

This is my manifest PV.yaml. I dont know how to create this in yalm to autoscale PV per pod increase instead create it manually

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mdcore-core-data
  labels:
    type: local
spec:
  storageClassName: "local-storage-immediate"
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文