如何将 helm 包连接到 PersistentStorage 卷?
How do I connect a helm package to a PersistentStorage volume?
我经常看到这个问题出现,但我还没有找到一个干净、通用的解决方案。我只是在学习 Kubernetes,所以也许我缺少一些基本的东西。但这是我所做的:
- 安装 docker-desktop with kubernetes
- 使用 yaml 文件手动创建持久存储卷(如下所示)
helm install redis dandydev/redis-ha
或者您可以使用任何其他 helm chart,无论是 elasticsearch、postgres 还是您的名字。我总是得到 pod has unbound immediate PersistentVolumeClaims
.
还有当我运行:kubectl get storageclasses.storage.k8s.io
我有(默认)存储空间:
NAME PROVISIONER AGE
hostpath (default) docker.io/hostpath 3h8m
任何人都可以帮助我以通用方式解决此问题吗?这样我就可以实际安装 helm charts 并让它们自动连接到持久存储卷?
我的volume.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"
好的,所以我在网上查看了各种自定义解决方案,其中一个确实有效:
https://github.com/helm/charts/issues/12521#issuecomment-477834805
此外,此答案提供了有关如何在本地启用动态配置的更多详细信息:
基本上(除了上面创建的卷之外)我需要手动:
- 创建存储 class,通过存储-class.yaml
- 将存储 class 添加到 '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 图表都希望您使用更多节点,并且运行 在本地你可能只有一个节点。
另一种选择是使用 helm install --set replicas=1 ...
,一些图表可以很好地处理它。
希望这对那里的人有所帮助。
我经常看到这个问题出现,但我还没有找到一个干净、通用的解决方案。我只是在学习 Kubernetes,所以也许我缺少一些基本的东西。但这是我所做的:
- 安装 docker-desktop with kubernetes
- 使用 yaml 文件手动创建持久存储卷(如下所示)
helm install redis dandydev/redis-ha
或者您可以使用任何其他 helm chart,无论是 elasticsearch、postgres 还是您的名字。我总是得到 pod has unbound immediate PersistentVolumeClaims
.
还有当我运行:kubectl get storageclasses.storage.k8s.io
我有(默认)存储空间:
NAME PROVISIONER AGE
hostpath (default) docker.io/hostpath 3h8m
任何人都可以帮助我以通用方式解决此问题吗?这样我就可以实际安装 helm charts 并让它们自动连接到持久存储卷?
我的volume.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"
好的,所以我在网上查看了各种自定义解决方案,其中一个确实有效: https://github.com/helm/charts/issues/12521#issuecomment-477834805
此外,此答案提供了有关如何在本地启用动态配置的更多详细信息:
基本上(除了上面创建的卷之外)我需要手动:
- 创建存储 class,通过存储-class.yaml
- 将存储 class 添加到 '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 图表都希望您使用更多节点,并且运行 在本地你可能只有一个节点。
另一种选择是使用 helm install --set replicas=1 ...
,一些图表可以很好地处理它。
希望这对那里的人有所帮助。