Állandó tárhely hozzáadása a Kubernetes Podshoz – CloudSavvy IT

Avatar admin | 2021.04.03. 7 Views 0 Likes 0 Ratings

7 Views 0 Ratings Rate it

A Kubernetes logót ábrázoló grafika

A Kubernetes Pod fájlrendszerek alapértelmezés szerint átmenetiek. Ez összhangban van a konténerek hontalan jellegével. A tartós adatokat a tárolón kívül kell tárolni, még akkor is, ha úgy tűnik, hogy a tároló fájlrendszerében vannak. Így készíthet tartós tárolást a Kubernetesben.

A Kubernetes tartós tárolásának alapegysége a Állandó kötet. Ez absztrakció az alapvetőbb felett Hangerő.

A tartós kötetek függetlenek minden adott Pod-tól. A sima Docker-kötetekhez hasonlóan a Kubernetes-féle Állandó kötetek akkor is megmaradhatnak a fürtben, ha nincsenek Pod-ok.

A hüvelyek hozzáférést kapnak a perzisztens kötetekhez azáltal, hogy a Tartós kötetigény. Ez egy másik erőforrástípus, amely a Pod kérelmét jelenti a tartós tárolás használatára. A követelés a kérelmet kielégítő állandó köteteket képezi.

Egy alap példa

Nézzük meg, hogyan lehet létrehozni egy állandó tárolórendszert azáltal, hogy manuálisan beállítja az Állandó kötet és a Tartós kötet követelést. Minden erőforrás a saját jegyzékfájljába kerül. Ezekkel a fájlokkal a fürtjére alkalmazhatja kubectl apply.

Hozzon létre egy állandó kötetet

Kezdje a kötet létrehozásával:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-volume
  namespace: pvc-demo
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /mnt/data

Ez a meghatározás létrehoz egy úgynevezett kötetet my-volume. 2Gi kapacitású, és itt tároljuk /mnt/data a fogadó Node-on. Mivel ezt a kötetet manuálisan készítjük, a storageClassName értékre van állítva manual. A tárolási osztályok megadhatják, hogy a kötetek csak az azonos osztályt igénylő kötetekre vonatkoznak.

Hozzon létre egy állandó kötetre vonatkozó követelést

Mostantól konfigurálhatja az állandó kötetre vonatkozó követelést:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-volume-claim
  namespace: pvc-demo
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

A követelés 1Gi tárhelyet igényel egy kötetből a manual osztály. A korábban létrehozott kötet megfelelhet ezeknek a feltételeknek. A követelés létrehozásakor Kubernetesnek fel kell ismernie ezt, és a követelést a kötethez kell kötnie.

Ha megvizsgálná a kötet és a követelés részleteit, látná, hogy mindkettő állapotot mutat Bound.

kubectl get pv my-volume
kubectl get pvc my-volume-claim

Adjon hozzá egy hüvelyt

Az utolsó lépés a kötet igénylésének felhasználása, hogy tartós tárhelyet adjon a Podhoz.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: pvc-demo
spec:
  containers:
    - name: my-container
      image: my-image:latest
      volumeMounts:
        - mountPath: /path/in/container
          name: my-pod-volume
  volumes:
    - name: my-pod-volume
      persistentVolumeClaim:
        claimName: my-volume-claim

Belül volumes szakaszban meg van adva a hivatkozás a Tartós kötet követelésre. A kötetről nem kell más információt megadnia. A Pod a követelést használja, amely megadja a kötetet, amelyhez kötődik.

A követelésre a volumeMounts. Győződjön meg róla, hogy ugyanazt a nevet használja a volumes és volumeMounts. A kötet a Pod-ba kerül a (z) által megadott helyre mountPath.

A Pod mostantól állandó tárhely áll rendelkezésre. Bármi írva /path/in/container a Perzisztens kötetbe kerül tárolásra. A Folyamatos mennyiségi igényt új hivatkozások fogják felhasználni, amelyek hivatkoznak rá, lehetővé téve az adatok számára, hogy az egyes Pod-okat túléljék.

Tárolási osztályok

Az manual A tárolási osztály akkor használható, amikor saját kötetet hoz létre, és a kötet-igénylési jegyzékek létrehozása. Különböző hangerő-bővítmény illesztőprogramok biztosítják saját tárolási osztályaikat. Hivatkozás a használni kívánt kötet típusát képviselő tárolóosztályra.

A kezelt Kubernetes-szolgáltatások általában saját tárolóosztályokat biztosítanak, amelyek a platform blokktárolási megvalósításához kapcsolódnak. Ilyenek például gcePersistentDisk a Google Kubernetes Engine-mel, vagy do-block-storage a DigitalOcean által kezelt Kubernetes-sel.

Ezekben a forgatókönyvekben nem kell létrehoznia a PersistentVolume manuálisan nyilvánul meg. Hozzon létre egy PersistentVolumeClaim a helyesel storageClassName és használja a resources.requests.storage mező (fent látható) a kívánt kapacitás megadásához. A tárolóillesztő automatikusan összekapcsolja a követelést egy kompatibilis kötetpéldányhoz.

Hozzáférési módok

Három támogatott érték létezik a accessModes terület:

  • ReadWriteOnce – A kötet csak egyetlen Kubernetes csomópontra csatlakoztatható. Ez a csomópont teljes olvasási és írási hozzáféréssel rendelkezik a kötethez.
  • ReadOnlyMany – A hangerőt egyszerre több csomópont is fel tudja fogyasztani. Minden csomópont csak olvasható hozzáféréssel rendelkezik (semmi nem írhat a kötetbe).
  • ReadWriteMany – A kötet egyszerre több csomópontra csatlakoztatható. Minden csomópont képes olvasni és írni a kötetbe.

Egy adott kötet bármikor csak egy hozzáférési módot használhat. Ez azt jelenti, hogy két kötet-követelés csak akkor kötődik ugyanahhoz a kötethez, ha mindkét követelés ugyanazt a hozzáférési módot deklarálja.

A kötetek hozzáférési módja befolyásolja a Kubernetes ütemező azon képességét, hogy a Podjainak replikáit több csomóponton átívelje. Az ReadOnlyMany/ReadWriteMany módokat kell használni, ha Podokra van szükség a tartós tárhely megosztására és több csomóponton kell replikálni.

Ne feledje, hogy nem minden tárolóillesztő támogatja az összes hozzáférési módot – ellenőrizze a bővítmény szolgáltatóját. A kötetbővítmények és a kompatibilis hozzáférési módok nem teljes listája található meg a Kubernetes dokumentációjában.

Következtetés

A Kubernetes állandó tárolása nem olyan ijesztő, mint amilyennek első pillantásra tűnik. Győződjön meg arról, hogy a tárhoz hozzáférést igénylő hüvelyek olyan kötetekkel rendelkeznek, amelyek egy állandó kötet-követeléshez vannak kötve.

Ha állandó kötetre vonatkozó állításokat használnak, a Kubernetes létrehoz egy állandó kötetet, amely túléli az egyes hüvelyeket. Amikor a hüvelyeket kicserélik, az igényelt kötetek automatikusan bekerülnek az új hüvelyekbe. Az adatok a követelés törléséig nem semmisülnek meg.


Forrás link


7 Views 0 Ratings Rate it

  • Minden jog fenntartva 2019-2020. Hogyankészítsek.Hu Impresszum Adatkezelési szabályok