Создание общего класса хранения NFS

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

В отличие от традиционной клиент-серверной модели доступа NFS, общее хранилище NFS использует плагин сообщества NFS CSI, который более соответствует принципам проектирования 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

Создание общего класса хранения 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Политика восстановления для постоянного тома.
    - Delete: При удалении запроса на постоянный том (PersistentVolumeClaim) связанный постоянный том также будет удалён.
    - Retain: Даже при удалении запроса на постоянный том связанный постоянный том останется.
    Access ModesВсе режимы доступа, поддерживаемые текущим хранилищем. При последующем объявлении постоянных томов можно выбрать только один из этих режимов для монтирования.
    - ReadWriteOnce (RWO): Может быть смонтирован как для чтения и записи одним узлом.
    - ReadWriteMany (RWX): Может быть смонтирован как для чтения и записи несколькими узлами.
    - ReadOnlyMany (ROX): Может быть смонтирован как только для чтения несколькими узлами.
    Allocated ProjectsПожалуйста, выделите проекты, которые могут использовать этот тип хранилища.
    Если в данный момент нет проектов, нуждающихся в этом типе хранилища, вы можете не выделять проекты сейчас и обновить их позже.
    subDirКаждый PersistentVolumeClaim (PVC), созданный с использованием общего класса хранения NFS, соответствует подкаталогу внутри общего ресурса NFS. По умолчанию подкаталоги именуются по шаблону ${pv.metadata.name} (то есть именем PersistentVolume). Если имя, сгенерированное по умолчанию, не соответствует вашим требованиям, вы можете настроить правила именования подкаталогов.
    NOTE

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

    • ${pvc.metadata.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.