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.