• Русский
  • Создание Shared Storage Class для NFS

    На основе community-драйвера NFS CSI (Container Storage Interface) предоставляется возможность доступа к нескольким NFS системам хранения или аккаунтам.

    В отличие от традиционной клиент-серверной модели доступа к NFS, Shared Storage NFS использует community-плагин NFS CSI (Container Storage Interface), который лучше соответствует принципам проектирования Kubernetes и позволяет клиентам обращаться к нескольким серверам.

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

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

    Развертывание плагина Alauda Container Platform NFS CSI

    Развертывание через веб-консоль

    1. Войдите в систему как Administrator.

    2. В левой навигационной панели нажмите Storage > StorageClasses.

    3. Нажмите Create StorageClass.

    4. Справа от NFS CSI нажмите Deploy, чтобы перейти на страницу Plugins.

    5. Справа от плагина Alauda Container Platform NFS CSI нажмите ⋮ > Install.

    6. Дождитесь, пока статус развертывания не изменится на Deployment Successful, после чего завершите развертывание.

    Развертывание через YAML

    См. Installing via YAML

    Alauda Container Platform NFS CSI является Non-config plugin, имя модуля — nfs

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

    1. Нажмите Create Storage Class.

      Примечание: Следующий контент представлен в виде формы, но вы также можете выполнить операцию с помощью YAML.

    2. Выберите NFS CSI и нажмите Next.

    3. Настройте параметры согласно следующим инструкциям.

      ПараметрОписание
      NameИмя класса хранения. Должно быть уникальным в пределах текущего кластера.
      Service AddressАдрес доступа к NFS серверу. Например: 192.168.2.11.
      PathПуть монтирования файловой системы NFS на сервере. Например: /nfs/data.
      NFS Protocol VersionВ настоящее время поддерживаются три версии: v3, v4.0 и v4.1.
      Reclaim PolicyПолитика восстановления для persistent volume.
      - Delete: при удалении persistent volume claim будет также удалён связанный persistent volume.
      - Retain: даже при удалении persistent volume claim связанный persistent volume сохраняется.
      Access ModesВсе режимы доступа, поддерживаемые текущим хранилищем. При последующем объявлении persistent volume можно выбрать только один из этих режимов для монтирования.
      - ReadWriteOnce (RWO): может быть смонтирован как для чтения и записи одним узлом.
      - ReadWriteMany (RWX): может быть смонтирован как для чтения и записи несколькими узлами.
      - ReadOnlyMany (ROX): может быть смонтирован только для чтения несколькими узлами.
      Allocated ProjectsУкажите проекты, которым разрешено использовать данный тип хранилища.
      Если в данный момент нет проектов, нуждающихся в этом типе хранилища, можно не выделять проекты сейчас и обновить позже.
      subDirКаждый PersistentVolumeClaim (PVC), созданный с использованием Shared Storage Class NFS, соответствует поддиректории внутри NFS шаринга. По умолчанию поддиректории именуются по шаблону ${pv.metadata.name} (то есть именем PersistentVolume). Если имя по умолчанию не подходит, можно настроить правила именования поддиректорий.
      NOTE

      Поле subDir поддерживает только следующие три переменные, которые автоматически разрешаются драйвером NFS CSI:

      • ${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 удаляет только последний уровень директории ${pv.metadata.name} при удалении PVC, оставляя родительские директории сиротами на NFS сервере.

    4. После подтверждения правильности конфигурации нажмите Create.