K8s и Helm: как найти требования PersistentVolumeClaim при сбое привязки? - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь установить Gitlab с их официального графика Хелма gitlab/gitlab. Одна из вложенных диаграмм - диаграмма bitnami/postgresql. У меня есть доступ к исходному коду обеих диаграмм.

$ helm install gitlab gitlab/gitlab \
  --set global.hosts.domain=mando \
  --set global.hosts.externalIP=192.168.1.2 \
  --set certmanager-issuer.email=my-email@gmail.com 
  --set global.edition=ce

Когда я пытаюсь установить диаграмму Gitlab, создается несколько контейнеров, а один PostgreSQL не запускается из-за несвязанного PV * 1016. *. Я попытался создать несколько разных PV, которые могли бы удовлетворить его требования, но ни один из них, кажется, не работает.

Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  23s (x14 over 8m)  default-scheduler  error while running "VolumeBinding" filter plugin for pod "gitlab-postgresql-0": pod has unbound immediate PersistentVolumeClaims

Я могу описать PV C и получить некоторую информацию о нем, но из вывода не ясно, чего не хватает в моих PV или что я могу сделать, чтобы заявка была успешной.

[mando infra]$ kubectl describe pvc data-gitlab-postgresql-0
Name:          data-gitlab-postgresql-0
Namespace:     default
StorageClass:  
Status:        Pending
Volume:        
Labels:        app=postgresql
               release=gitlab
               role=master
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Mounted By:    gitlab-postgresql-0
Events:
  Type    Reason         Age                     From                         Message
  ----    ------         ----                    ----                         -------
  Normal  FailedBinding  4m48s (x6324 over 26h)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set

Так как же найти требования PersistentVolumeClaim при сбое привязки PV?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Как описано в документации gitlab , вы должны управлять хранилищем самостоятельно. Вы должны сами создать класс хранения, pv и pvcs.

Рекомендуется использовать динамическое выделение памяти c. Пример StorageClass объект для GCP :

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
 name: CUSTOM_STORAGE_CLASS_NAME
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Retain
parameters:
 type: pd-standard

После создания StorageClass необходимо обновить диаграмму, изменив следующий файл с созданным storageClass:

gitlab:
 gitaly:
 persistence:
 storageClass: CUSTOM_STORAGE_CLASS_NAME
 size: 50Gi
postgresql:
 persistence:
 storageClass: CUSTOM_STORAGE_CLASS_NAME
 size: 8Gi
minio:
 persistence:
 storageClass: CUSTOM_STORAGE_CLASS_NAME
 size: 10Gi
redis:
 master:
 persistence:
 storageClass: CUSTOM_STORAGE_CLASS_NAME
 size: 5Gi

И обновите свой график

helm install -upgrade gitlab gitlab/gitlab -f HELM_OPTIONS_YAML_FILE
0 голосов
/ 05 апреля 2020

storageClassName на вашем PV C должно совпадать с именем на вашем PV. Возможно, стоит описать ваш PV и подтвердить, что эти и другие свойства совпадают.

...