âBună ziua.
Întâmpin o problemă în timp ce încerc să implementez un pod care a fost configurat să utilizeze un volum persistent.Instalarea mea este găzduită pe Hetzner Cloud și Kubernetes a fost configurat conform instrucțiunilor puse la dispoziție de furnizor. Configurația de bază pare ok, deoarece pot implementa de ex. Portainer dintr-unul din manifestele furnizate: monteaza corect PVC-ul si ruleaza. Deoarece configurația implicită nu creează o stocare persistentă, de fiecare dată când anulez și reinstalez Portainer toate datele se pierd.
Așa că am continuat cu crearea unui Volum persistent, dar pasul final nu funcționează. Nu pot spune dacă problema este una generică Kubernetes sau este legată de integrarea mea cu Hetzner - dar cred că are sens să verific prima ipoteză. Așa că întreb aici înainte de a merge pe forumul Hetzner.
Pași:
Am creat un volum folosind interfața de utilizator Hetzner Cloud.
Apoi am implementat un PV:
apiVersion: v1
fel: spațiu de nume
metadate:
nume: portainer
---
apiVersion: v1
fel: PersistentVolume
metadate:
nume: pv-portainer-test
namespace: portainer
etichete:
env: test
specificație:
storageClassName: portainer-test
Moduri de acces:
- ReadWriteOnce
capacitate:
stocare: 10Gi
persistentVolumeReclaimPolicy: Păstrați
volumMod: Sistem de fișiere
csi:
driver: csi.hetzner.cloud
fsType: ext4
volumHandle: „pv_id”
pv_id este ID-ul volumului pe care îl pot vedea cu interfața de utilizator Hetzner.
Pot vedea PV-ul cu kubelet get pv -A:
SPAȚIU DE NUME NUME CAPACITATE MODURI DE ACCES POLITICI DE REVENIRE STAREA VENIREA DEPOZITARE CLASA MOTIV Vârsta
persistentvolume/pv-portainer-test 10Gi RWO Retain Available portainer-test 71s
Rețineți că spațiul de nume nu a fost definit... dar presupun că aceasta nu este o problemă serioasă. Poate greșesc.
- Am desfășurat Portainer de la Aici și următorul patch:â
fel: PersistentVolumeClaim
apiVersion: v1
metadate:
nume: portainer
namespace: portainer
specificație:
storageClassName: portainer-test
Moduri de acces:
- ReadWriteOnce
resurse:
cereri:
stocare: "10Gi"
Acum cu kubectl obține pvc,pv -A Văd că PVC-ul a fost legat de PV:
âSPAȚIU DE NUMELE NUME STAREA VOLUM CAPACITATE MODURI DE ACCES DEPOZITARE CLASA VÂRĂ
portainer persistentvolumeclaim/portainer Bound pv-portainer-test 10Gi RWO portainer-test 16m
SPAȚIU DE NUME NUME CAPACITATE MODURI DE ACCES POLITICI DE REVENIRE STAREA VENIREA DEPOZITARE CLASA MOTIV Vârsta
persistentvolume/pv-portainer-test 10Gi RWO Retain Bound portainer/portainer portainer-test 17m
- Dar podul Portainer rămâne în
ContainerCreating statut pentru totdeauna.â Cu kubectl descrie vad motivul:
Avertisment FailedAttachVolume 2s (x7 peste 38s) attachdetach-controller AttachVolume.Attach a eșuat pentru volumul „pv-portainer-test”: eroare rpc: code = FailedPrecondition desc = eșuat la publicarea volumului: volumul este atașat
Deci se pare că se plânge pentru că PV-ul este deja atașat... dar într-adevăr ar fi trebuit să fie atașat tocmai de acel pod.