â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.