VK Cloud logo

Тұрақты томдар және PVC

Тұрақты том (Persistent Volume, PV) Kubernetes кластерлерінде деректерді ұзақ мерзімді сақтауға мүмкіндік береді. PV-де сақталатын деректер жеке контейнер немесе тұтас под істен шыққан кезде жоғалмайды.

Жұмыс жүктемелерінде (workloads) PV-ді тікелей пайдалануға болмайды. Қосымша түрде Persistent Volume Claim (PVC) жасау қажет, ол қажетті параметрлері бар тұрақты томды сұрауға және кейін оны жұмыс жүктемелерінде пайдалануға мүмкіндік береді. PVC ішінде көрсетуге болатын ең кең таралған параметрлер:

  • Сақтау орнының көлемі (spec.resources.requests.storage).

  • Томға қол жеткізу режимі (spec.accessModes).

    Kubernetes томға қол жеткізудің келесі режимдерін қолдайды:

    • ReadWriteOnce (RWO): томды кластердің бір түйіні (node) «оқу және жазу» режимінде монтирлей алады. Мұндай томды бірнеше под бірден пайдалана алады, егер олардың барлығы осы том монтирленген бір түйінде орналасса.

    • ReadOnlyMany (ROX): томды кластердің бірнеше түйіні «тек оқу» режимінде монтирлей алады.

    • ReadWriteMany (RWX): томды кластердің бірнеше түйіні «оқу және жазу» режимінде монтирлей алады.

    PVC көмегімен бірден бірнеше режимде жұмыс істей алатын PV-ді сұрауға болады, бірақ мұндай PV-ді монтирлеген кезде режимдердің бірін таңдау керек болады. Мысалы, егер PVC көмегімен RWO және RWX режимдері бар PV сұралса, келесі әрекеттердің бірі қолжетімді болады:

    • не осы PV-ді кластердің бір түйіні арқылы RWO режимінде монтирлеу;
    • не осы PV-ді кластердің бірнеше түйіні арқылы RWX режимінде монтирлеу.

PV және PVC өмірлік циклі

PV және PVC өмірлік циклі подтардың өмірлік цикліне тәуелді емес және төрт дәйекті кезеңнен тұрады:

  1. Дайындау (provisioning).
  2. Байланыстыру (binding).
  3. Пайдалану (using).
  4. Босату (reclaiming).

1. Дайындау

PV-ді PVC арқылы сұрауға болу үшін, оны мына тәсілдердің бірімен алдын ала дайындау керек:

  • Статикалық дайындау (static provisioning): PV қолмен жасалады, мысалы, Kubernetes әкімшісі тарапынан.
  • Динамикалық дайындау (dynamic provisioning): PV PVC жасалғаннан кейін автоматты түрде жасалады.

Динамикалық дайындау үшін екі шарттың орындалуы қажет:

  • Kubernetes кластерінде storage classes бапталған болуы тиіс. Cloud Containers кластерлерінде алдын ала бапталған storage classes бар.

  • PVC үшін бұрыннан бар әрі сәйкес келетін PV табылмауы керек.

Динамикалық дайындау барысында Kubernetes PVC параметрлеріне сәйкес келетін PV жасауға тырысады. Storage classes түрлерінің бірі пайдаланылады:

  • PVC ішінде анық көрсетілген storage class;
  • егер storage class PVC ішінде анық көрсетілмесе, әдепкі бойынша storage class.

Cloud Containers кластерлерінде әдепкі бойынша storage class бапталмаған. Егер PVC ішінде storage class-ты анық көрсетуді жоспарламасаңыз, онда PVC жасамас бұрын әдепкі бойынша storage class-ты қолмен таңдаңыз.

2. Байланыстыру

Жұмыс жүктемелерінде пайдалану үшін PV және PVC «бірге бір» қағидаты бойынша байланысады. Байланыстырылған PV-ді басқа PVC-лермен пайдалану мүмкін емес.

Kubernetes кластерінде жаңа PVC пайда болған кезде:

  1. Kubernetes байланыстыруға қолжетімді (PV күйі: Available) және PVC ішінде берілген параметрлерге барынша дәл сәйкес келетін қолайлы PV табуға тырысады.

    Егер PVC ішінде берілген параметрлерге дәл сәйкес келетін қолжетімді PV болмаса, артық сипаттамалары бар PV таңдалуы мүмкін. Қолжетімді PV-лер мен жасалып жатқан PVC-лерді қадағалаңыз, сонда үлкен көлемдегі барлық PV-лер шағын сақтау көлемін сұрайтын PVC-лермен байланыстырылатын жағдайға жол бермейсіз. Мұндай PV-лердегі орын тиімсіз жұмсалады және кластерде үлкен сақтау көлемін қажет ететін PVC-лер пайда болған кезде олар байланыстыру үшін қолжетімсіз болады.

  2. Kubernetes келесі әрекеттердің бірін орындайды:

    • Егер қолайлы PV табылса, Kubernetes оны PVC-мен байланыстырады.
    • Егер қолайлы PV табылмаса, онда Kubernetes алдымен томды динамикалық түрде дайындауға, содан кейін жасалған PV-ді PVC-мен байланыстыруға тырысады.
  3. Ешбір PV-мен байланыстыру мүмкін болмаған PVC Unbound күйінде болады. Жұмыс жүктемелері мұндай PVC-ні том ретінде пайдалана алмайды. Егер кластерде жаңа PV-лер пайда болса, Kubernetes мұндай PVC-ні олармен мерзімді түрде байланыстыруға тырысады.

3. Пайдалану

Kubernetes PVC-ні PV-мен байланыстырғаннан кейін, бұл PVC жұмыс жүктемесі тарапынан кәдімгі том ретінде пайдаланыла алады.

4. Босату

PVC енді қажет болмай, жойылған кезде, осы PVC-мен байланыстырылған PV-ге берілген босату саясаты (reclaim policy) қолданылады.

Саясат келесі тәсілдердің бірімен беріледі:

  • тұрақты томды қолмен жасау кезінде;
  • әдепкі storage class орнату кезінде немесе PVC ішінде storage class орнату кезінде.

Қолжетімді саясаттар:

  • Томды сақтау (Retain).

    Кездейсоқ PVC жойылған кезде деректерді қорғау үшін бұл саясатты маңызды деректері бар PV-лер үшін пайдаланыңыз. Қажет болса, мұндай томдарды қолмен тазалап, жоюға болады.

  • Томды жою (Delete).

    Таңдалған PV түріне байланысты PV-мен байланысқан төменгі деңгейдегі сақтау орны да жойылуы мүмкін.

Cloud Containers кластерлерінде таңдалған сақтау түрі қолжетімді босату саясаттарына әсер етеді.

Сондай-ақ қараңыз