如何将helm包连接到persistentstorage卷?

whlutmcx  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(405)

我经常遇到这个问题,但我还没有找到一个干净的、通用的解决方案。我只是在学库伯内特,所以也许我缺少一些基本的东西。但我做的是:
使用kubernetes安装docker desktop
使用yaml文件手动创建持久存储卷(如下所示) helm install redis dandydev/redis-ha 或者你可以使用任何其他的 Helm 图,无论是elasticsearch,postgres,你说的。我总是 pod has unbound immediate PersistentVolumeClaims .
当我跑步时: kubectl get storageclasses.storage.k8s.io 我有(默认)存储空间:

NAME                 PROVISIONER          AGE
hostpath (default)   docker.io/hostpath   3h8m

有人能帮我用一种通用的方法解决这个问题吗?这样我就可以安装helm图表并让它们自动连接到持久性存储卷?
我的卷.yaml:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: redis-volume
  labels:
    type: local
    app: redis
spec:
  storageClassName: ""
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/mnt/redis"
7fhtutme

7fhtutme1#

好的,我在网上查看了各种定制解决方案,其中一个确实有效:https://github.com/helm/charts/issues/12521#issuecomment-477834805
此外,这个答案还提供了有关如何在本地启用动态资源调配的更多详细信息:pod具有未绑定的persistentvolumeclaims
基本上(除了上面创建的卷之外)我需要手动:
通过storage-class.yaml创建存储类
将该存储类添加到“values.yaml”中


# storage-class.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: data-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

此外,一些在本地运行的图表需要您在下面自定义它们的配置 <your-helm>/charts/<chart-name>/<file-to-config.yaml> ,或通过 --set <var>=value 因为,大多数舵图希望您使用更多节点,而在本地运行时,您可能只有一个节点。
另一种选择是使用 helm install --set replicas=1 ... 一些图表可以很好地处理这个问题。
希望这能帮助别人。

相关问题