如何在k8s中使用mongodb图表设置本地卷?

问题描述 投票:0回答:2

我想在本地开发环境中使用 helm 部署 mongodb 图表。 我在 bitnami 上找到了所有可能的值,但令人难以承受! 我怎样才能配置类似的东西:

template:
metadata:
  labels:
    app: mongodb
spec:
  containers:
  - name: mongodb
    image: mongo
    ports:
    - containerPort: 27017
    volumeMounts:
    - name: mongo-data
      mountPath: /data/db/
  volumes:
    - name: mongo-data
      hostPath:
        path: /app/db

使用value.yml配置文件?

mongodb kubernetes kubernetes-helm
2个回答
3
投票

这里最好的方法是部署类似您在问题中引用的 Bitnami MongoDB 图表及其默认选项

helm install mongodb bitnami/mongodb

该图表将为您创建一个 PersistentVolumeClaim,并且称为“持久卷配置器”的 Kubernetes 标准部分将创建相应的 PersistentVolume。 实际存储将位于“Kubernetes 内部的某个位置”,但对于数据库存储,您几乎无法直接对实际文件执行任何操作,因此这通常不是一个实际问题。 如果你不能使用这种方法,那么你需要手动创建存储,然后告诉图表使用它。 您需要创建一对 PersistentVolumeClaim 和 PercientVolume,例如如

Kubernetes 持久卷和主机路径

的开头所示,并使用 kubectl apply -f pv-pvc.yaml 手动提交它们。 然后,您需要告诉 Bitnami 图表有关 PersistentVolume 的信息:

helm install mongodb bitnami/mongodb \
  --set persistence.existingClaim=your-pvc-name

我会在非开发环境中避免这个序列。  集群通常应该设置一个持久卷配置程序,因此您不需要手动创建持久卷,并且主机路径卷在多节点环境中是不可靠的(它们指的是 pod 恰好位于哪个节点上的固定路径)运行,因此如果 pod 重新调度到不同的节点上,数据可能会丢失)。


0
投票

kubectl -n $NAMESPACE apply -f persistent-volume-claim.yaml

例如:(或检查
https://kubernetes.io/docs/concepts/storage/persistent-volumes/

#persistent-volume-claim.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongo-data spec: accessModes: - ReadWriteMany storageClassName: default resources: requests: storage: 10Gi

检查您的卷是否已正确创建

kubectl -n $NAMESPACE get pv

现在,即使您删除了 mongodb,您的卷也将持续存在并且可以由任何其他部署访问

© www.soinside.com 2019 - 2024. All rights reserved.