Kubernetes 1.33: Заповнювач томів перейшов у стан загальної доступності (GA)

Заповнювачі томів у Kubernetes тепер загальнодоступні (GA)! Функціональна можливість AnyVolumeDataSource вважається увімкненою у Kubernetes v1.33, що означає, що користувачі можуть вказати будь-який відповідний власний ресурс в якості джерела даних для PersistentVolumeClaim (PVC).

Приклад використання dataSourceRef у PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc1
spec:
  ...
  dataSourceRef:
    apiGroup: provider.example.com
    kind: Provider
    name: provider1

Що нового

У порівнянні з бета-версією є чотири основні покращення.

Заповнювач Pod є опціональним

Під час бета-версії учасники проєкту Kubernetes виявили потенційні витоки ресурсів при видаленні PersistentVolumeClaim (PVC) під час заповнення тома; ці витоки траплялися через обмеження в роботі з завершувачами. Напередодні переходу до стану загальної доступності проєкт Kubernetes додав підтримку видалення тимчасових ресурсів (PVC prime тощо), якщо видалено первинний PVC.

Для цього ми створили три нові функції на основі втулків:

  • PopulateFn(): Виконує логіку заповнення даних, специфічну для провайдера.
  • PopulateCompleteFn(): Перевіряє, чи успішно завершилася операція поповнення бази даних.
  • PopulateCleanupFn(): Очищає тимчасові ресурси, створені функціями, специфічними для провайдера, після завершення заповнення даних

Приклад для провайдера додано до lib-volume-populator/example.

Функції-мутатори для модифікації ресурсів Kubernetes

Для GA, код контролера CSI для керування заповненням томів отримав MutatorConfig, що дозволяє визначати функції-мутатори для модифікації ресурсів Kubernetes. Наприклад, якщо прайм PVC не є точною копією PVC і вам потрібна інформація для драйвера, специфічна для провайдера, ви можете включити цю інформацію у додатковий MutatorConfig. Це дозволить вам налаштовувати обʼєкти Kubernetes у заповнювачі томів.

Гнучка обробка метрик для постачальників

Наша бета-версія виявила нову вимогу: необхідність агрегувати метрики не лише з lib-volume-populator, але й з інших компонентів у кодовій базі провайдера.

Щоб розвʼязати цю проблему, SIG Storage запровадила менеджер метрик провайдера. Це вдосконалення делегує реалізацію логіки метрик самому провайдеру, а не покладається виключно на lib-volume-populator. Ця зміна забезпечує більшу гнучкість і контроль над збором та агрегацією метрик, що дає змогу отримати більш повне уявлення про продуктивність провайдера.

Очищення для тимчасових ресурсів

Під час бета-версії ми виявили потенційні протікання ресурсів при видаленні PersistentVolumeClaim (PVC) під час заповнення тому через обмеження в роботі з завершувачем. Ми вдосконалили заповнювач в цьому випуску GA, щоб він підтримував видалення тимчасових ресурсів (PVC prime тощо), якщо початковий PVC видалено.

Як користуватися

Щоб спробувати, будь ласка, дотримуйтесь інструкцій з попереднього допису в блозі.

Майбутні напрямки та потенційні функціональні запити

На наступному кроці є кілька потенційних запитів на доопрацювання заповнювача томів:

  • Багаторазова синхронізація: поточна реалізація передбачає одноразову односпрямовану синхронізацію від джерела до місця призначення. Її можна розширити для підтримки багаторазової синхронізації, увімкнувши періодичну синхронізацію або дозволивши користувачам виконувати синхронізацію на вимогу
  • Двонапрямна синхронізація: розширення багаторазової синхронізації, описаної вище, але з двонапрямною синхронізацією між джерелом і пунктом призначення
  • Заповнення даних з пріоритетами: зі списком різних dataSourceRef, заповнення на основі пріоритетів
  • Заповнення даних з декількох джерел одного постачальника: заповнення декількох різних джерел до одного місця призначення
  • Заповнення даних з декількох джерел різних постачальників: заповнення з декількох різних джерел до одного місця призначення, обʼєднуючи заповнення з різних ресурсів в один конвеєр

Щоб переконатися, що ми створюємо щось справді цінне, Kubernetes SIG Storage буде радий почути про будь-які конкретні випадки використання цієї функції, які ви маєте на увазі. Якщо у вас виникли запитання або конкретні проблеми, повʼязані з заповнювачем томів, звертайтеся до спільноти SIG Storage.