Как подключить пакет helm к тому PersistentStorage?

Я часто видел, как этот вопрос возникает, и мне еще предстоит найти чистое, универсальное решение. Я только изучаю Kubernetes, так что, возможно, мне не хватает чего-то базового. Но вот что я сделал:

  1. установить docker-desktop с кубернетами
  2. вручную создать том постоянного хранилища с помощью файла yaml (показано ниже)
  3. helm install redis dandydev/redis-ha

Или вы можете использовать любую другую диаграмму управления, будь то elasticsearch, postgres, вы называете это. Я всегда получаю pod has unbound immediate PersistentVolumeClaims.

Также, когда я запускаю: kubectl get storageclasses.storage.k8s.io У меня есть (по умолчанию) хранилище:

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

Может ли кто-нибудь помочь мне решить эту проблему обычным способом? Так что я действительно могу установить Helm-диаграммы и автоматически подключать их к постоянному тому хранилища?

Мой 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"

person Cosmin Atanasiu    schedule 18.06.2020    source источник
comment
В коде диаграммы Redis helm вы можете увидеть этот код, который предлагает вам прочитать мой другой ответ на аналогичный вопрос. Сообщите мне, если это решит вашу проблему.   -  person Matt    schedule 19.06.2020


Ответы (1)


Хорошо, я поискал в Интернете различные индивидуальные решения, и одно действительно сработало: https://github.com/helm/charts/issues/12521#issuecomment-477834805

Кроме того, этот ответ содержит более подробную информацию о том, как включить динамическую подготовку локально: pod имеет несвязанные PersistentVolumeClaims

В основном (помимо создания тома выше) мне нужно вручную:

  1. создать класс хранилища через storage-class.yaml
  2. добавьте этот класс хранения в helm в 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 ..., и с этим хорошо подойдут некоторые диаграммы.

Надеюсь, это поможет кому-то там.

person Cosmin Atanasiu    schedule 18.06.2020