我想在本地开发环境中使用 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配置文件?
这里最好的方法是部署类似您在问题中引用的 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 重新调度到不同的节点上,数据可能会丢失)。
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,您的卷也将持续存在并且可以由任何其他部署访问