Настройка правил именования поддиректорий в NFS Shared Storage Class

Содержание

Обзор функции

Каждый PersistentVolumeClaim (PVC), созданный с использованием NFS Shared Storage Class, соответствует поддиректории внутри NFS-шары. По умолчанию поддиректории именуются по шаблону ${pv.metadata.name} (то есть именем PersistentVolume). Если имя, сгенерированное по умолчанию, не соответствует вашим требованиям, вы можете настроить правила именования поддиректорий. В этом документе приведены методы конфигурации и лучшие практики для кастомизации соглашения об именах.

Сценарии использования

На стороне NFS-сервера имена поддиректорий могут использоваться для идентификации соответствующих PersistentVolumeClaims (PVC) в Kubernetes. Это позволяет администраторам контролировать использование хранилища каждым PVC, упрощая операционное управление.

Предварительные требования

  • Должен быть настроен NFS-сервер, а также получены методы доступа к нему. В настоящее время платформа поддерживает три версии протокола NFS: v3, v4.0 и v4.1. Вы можете выполнить команду nfsstat -s на стороне сервера, чтобы проверить информацию о версии.

Процедура

Развертывание плагина NFS Shared Storage

См. Deploying the NFS Shared Storage Plugin.

Создание NFS Shared Storage Class

  1. См. Creating an NFS Shared Storage Class.

  2. Перед нажатием Create переключитесь в режим просмотра YAML и добавьте конфигурацию subDir в раздел parameters для определения правил именования поддиректорий.

    Пример конфигурации
    Примеры имен поддиректорий
    parameters:
      subDir: ${pvc.metadata.namespace}_${pvc.metadata.name}_${pv.metadata.name}

    Примечание:

    • Поле subDir поддерживает только следующие три переменные, которые автоматически разрешаются NFS CSI Driver:
      • ${pvc.metadata.namespace}: Namespace PVC.
      • ${pvc.metadata.name}: Имя PVC.
      • ${pv.metadata.name}: Имя PV.
    • Правило именования subDir ДОЛЖНО гарантировать уникальность имен поддиректорий. В противном случае несколько PVC могут использовать одну и ту же поддиректорию, что приведёт к конфликтам данных.

    Рекомендуемые конфигурации:

    • ${pvc.metadata.namespace}_${pvc.metadata.name}_${pv.metadata.name}

    • <cluster-identifier>_${pvc.metadata.namespace}_${pvc.metadata.name}_${pv.metadata.name}

      Предназначено для нескольких Kubernetes кластеров, использующих один и тот же NFS-сервер. Такая конфигурация обеспечивает чёткое различие кластеров за счёт включения идентификатора кластера (например, имени кластера) в правила именования поддиректорий.

    Не рекомендуемые конфигурации:

    • ${pvc.metadata.namespace}-${pvc.metadata.name}-${pv.metadata.name}

      Избегайте использования - в качестве разделителей, так как это может привести к неоднозначности имён поддиректорий. Например: если два PVC называются ns-1/test и ns/1-test, оба могут сгенерировать одинаковую поддиректорию ns-1-test.

    • ${pvc.metadata.namespace}/${pvc.metadata.name}/${pv.metadata.name}

      НЕ настраивайте subDir для создания вложенных директорий. NFS CSI Driver удаляет только директорию последнего уровня ${pv.metadata.name} при удалении PVC, оставляя родительские директории сиротами на NFS-сервере.

  3. Нажмите Create.

INFO

Существующий StorageClass изменить нельзя.