Docker ja Kubernetes kehittäjille · Oppitunti

Persistent Volumet ja Persistent Volume Claimit

Ymmärrä, miten tallennustilaa varataan ja käytetään dynaamisesti Kubernetesissa PV- ja PVC-resurssien avulla.

Oppitunti 1/412 vaihetta

Persistent Volumet ja Persistent Volume Claimit on ilmainen Docker ja Kubernetes kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Docker ja Kubernetes kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Lyhytikäiset Podit, pysyvät tiedot

Kubernetesissa Podit on suunniteltu tilapäisiksi ja korvattaviksi. Jos Pod kaatuu tai ajoitetaan uudelleen, kaikki sen sisälle suoraan tallennetut tiedot menetetään.

Tämä lyhytikäinen luonne sopii erinomaisesti tilattomille sovelluksille, mutta miten toimitaan sovellusten kanssa, joiden on tallennettava tietoja pysyvästi, kuten tietokantojen tai tiedostopalvelinten?

Persistent Volumes -resurssien esittely

Persistent Volume (PV) on klusterin tallennustila, jonka ylläpitäjä tai Kubernetes on varannut dynaamisesti.

Se abstrahoi taustalla olevan tallennustilan (kuten pilvilevyn, NFS-jaon tai paikallisen levyn) ja tekee sen Podien käytettäväksi ilman, että niiden tarvitsee tuntea tallennustilan yksityiskohtia.

PV:n kapasiteetti ja käyttötilat

Jokaisella PV:llä on tiettyjä ominaisuuksia:

  • Capacity: Tallennustilan koko, esimerkiksi 10Gi.
  • Access Modes: Miten Podit voivat liittää tallennustilan.
  • Reclaim Policy: Mitä taltiolle tapahtuu, kun Pod lopettaa sen käytön.

Näiden ominaisuuksien avulla Kubernetes voi yhdistää tallennustilapyynnöt käytettävissä oleviin taltioihin.

Miten Podit käyttävät tallennustilaa

PV:n Access Modes määrittävät, miten taltio voidaan liittää:

  • ReadWriteOnce (RWO): Yksi solmu voi liittää taltion luku- ja kirjoitusoikeuksin.
  • ReadOnlyMany (ROX): Useat solmut voivat liittää taltion vain luku -tilassa.
  • ReadWriteMany (RWX): Useat solmut voivat liittää taltion luku- ja kirjoitusoikeuksin.

Kaikki tallennustyypit eivät tue kaikkia tiloja. Esimerkiksi paikallinen levy tukee yleensä vain tilaa RWO.

Vapautettujen PV:iden käsittely

PV:n Reclaim Policy määrittää, mitä taustalla olevalle tallennustilalle tapahtuu, kun PV vapautetaan sidoksestaan:

  • Retain: Manuaalinen uudelleenkäyttö. Tiedot säilyvät, ja ylläpitäjän on poistettava ne manuaalisesti.
  • Delete: Taustalla oleva tallennustila poistetaan automaattisesti yhdessä PV:n kanssa. Tämä on tavallista dynaamisesti varatuilla taltioilla.
  • Recycle: (Vanhentunut) Tyhjentää taltion ja asettaa sen uudelleen käytettäväksi.

Retain on hyödyllinen kriittisille tiedoille, jotka on tarkistettava manuaalisesti ennen poistamista.

Pysyvän tallennustilan pyytäminen

Persistent Volume Claim (PVC) on käyttäjän tai sovelluksen tallennustilapyyntö.

Ajatelkaa sitä tietyn tyyppistä ja tietyn kokoista tallennustilaa koskevana pyyntönä. Podit pyytävät tallennustilaa PVC:iden kautta sen sijaan, että käsittelisivät PV:itä suoraan.

PVC:t tarjoavat abstraktiokerroksen, jonka ansiosta kehittäjät voivat pyytää tallennustilaa tuntematta taustalla olevan infrastruktuurin yksityiskohtia.

Tallennustilapyyntöjen yhdistäminen

Kun PVC luodaan, Kubernetes yrittää löytää sopivan PV:n, johon se voidaan sitoa. Tätä prosessia kutsutaan binding-toiminnoksi.

Se etsii PV:itä, jotka täyttävät PVC:n vaatimukset:

  • Kapasiteetti (koko)
  • Access Modes
  • Storage Class (jos määritetty)

Kun PV on sidottu, se varataan yksinomaan kyseiselle PVC:lle.

Perus-PV:n määrittäminen

Yksinkertaisen hostPath-Persistent Volumen voi määrittää esimerkiksi näin. Tämä tyyppi käyttää solmun tiedostojärjestelmän hakemistoa, ja sitä käytetään pääasiassa yhden solmun testaukseen.

Kokeilkaa tämän esimerkin suorittamista (kubectl apply -f pv.yaml):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: "/mnt/data"

Tallennustilan pyytäminen PVC:llä

Luodaan nyt Persistent Volume Claim, joka pyytää 1Gi tallennustilaa ja ReadWriteOnce-käyttöoikeuden. Se sidotaan my-pv-resurssiin, jos se on käytettävissä.

Kokeilkaa tämän esimerkin suorittamista (kubectl apply -f pvc.yaml):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

PVC:n liittäminen Podiin

Seuraavaksi tarkastellaan, miten Pod voi käyttää PVC:n tarjoamaa tallennustilaa. Viittaamme PVC:hen Podin volumes-osiossa ja liitämme sen sitten säilöön.

Kokeilkaa tämän esimerkin suorittamista (kubectl apply -f pod.yaml):

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  volumes:
    - name: my-storage
      persistentVolumeClaim:
        claimName: my-pvc
  containers:
    - name: my-container
      image: busybox
      command: ["sh", "-c", "echo 'Hello from CoddyKit!' > /data/message.txt && sleep 3600"]
      volumeMounts:
        - mountPath: "/data"
          name: my-storage

PV:n ja PVC:n roolit

Persistent Volumes (PV:t) ja Persistent Volume Claims (PVC:t) ovat eri rooleissa, ja niiden ymmärtäminen on olennaista Kubernetesin tallennustilan hallinnassa.

Mikä väite kuvaa oikein Persistent Volumen (PV:n) ensisijaisen roolin?

Kertaus: pysyvä tallennustila

Hienoa! Olette oppineet, miten Kubernetes hallitsee pysyvää tallennustilaa:

  • Persistent Volumes (PV:t) abstrahoivat fyysiset tallennusresurssit.
  • Persistent Volume Claims (PVC:t) ovat käyttäjien tallennustilapyyntöjä.
  • PV:illä on kapasiteetti, käyttötilat (RWO, ROX, RWX) ja vapautuskäytännöt (Retain, Delete).
  • PVC:t sidotaan käytettävissä oleviin PV:ihin, minkä jälkeen Podit käyttävät PVC:itä tallennustilan liittämiseen.

Tämän järjestelmän ansiosta sovellukset voivat tallentaa tietoja luotettavasti, vaikka Podit luotaisiin uudelleen tai siirrettäisiin.

Aloita maksutta

Opi Docker ja Kubernetes kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Persistent Volumet ja Persistent Volume Claimit” ilmainen?

Kyllä – oppitunnin ”Persistent Volumet ja Persistent Volume Claimit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Docker ja Kubernetes kehittäjille-kurssin, päivitä CoddyKit PROhon. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Persistent Volumet ja Persistent Volume Claimit”?

Ymmärrä, miten tallennustilaa varataan ja käytetään dynaamisesti Kubernetesissa PV- ja PVC-resurssien avulla. Harjoittelet Docker ja Kubernetes kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Docker ja Kubernetes kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Docker ja Kubernetes kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Persistent Volumet ja Persistent Volume Claimit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Docker ja Kubernetes kehittäjille-oppitunnilla?

Kyllä. Jokainen Docker ja Kubernetes kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Persistent Volumet ja Persistent Volume Claimit
  2. Tilallisten sovellusten hallinta StatefulSetien avulla
  3. ConfigMapit ja Secretit määrityksiä varten
  4. StorageClassit ja dynaaminen varaus
← Takaisin: Docker ja Kubernetes kehittäjille