• Русский
  • Конфигурация инициализации хранилища кластера AWS EKS

    Интеграция платформы с AWS EKS и конфигурация инициализации хранилища.

    Ограничения и лимиты

    • Класс файлового хранилища по умолчанию efs-sc может не поддерживать изменение прав доступа после монтирования, что может привести к неправильной работе некоторых приложений, таких как PostgreSQL и Jenkins.

    • Инстансы серии A1 не поддерживаются AMI AL2023, что препятствует корректному развертыванию плагина блочного хранилища EBS (Amazon EBS CSI Driver). Драйвер EBS CSI имеет GA поддержку мультиархитектуры/ARM, поэтому ограничение связано с поддержкой AMI/инстансов, а не с самим драйвером. Если необходимо использовать классы блочного хранилища EBS, избегайте следующих типов инстансов и рассмотрите альтернативы на базе Graviton2/3:

      • a1.medium
      • a1.large
      • a1.xlarge
      • a1.2xlarge
      • a1.4xlarge

      Рекомендуемые альтернативы: Используйте семейства инстансов Graviton2/3, такие как m6g, c6g, r6g, t4g и др., которые обеспечивают лучшую производительность и полную поддержку драйвера EBS CSI.

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

    • Убедитесь, что доступны инструменты kubectl и AWS CLI.

    • Если кластер EKS уже создан, импортируйте кластер Amazon EKS; если нет — создайте кластер AWS EKS.

    • Разверните плагин файлового хранилища EFS Amazon EFS CSI Driver и плагин блочного хранилища EBS Amazon EBS CSI Driver в кластере EKS.

      Примечание: При использовании файлового хранилища EFS создайте файловое хранилище в регионе EKS и запишите File System ID из File System.

    Шаги конфигурации

    Создание классов хранилища

    1. Перейдите в Управление платформой и в левом меню выберите Управление хранилищем > Классы хранилища.

    2. Нажмите на выпадающее меню рядом с Создать класс хранилища > Создать из YAML.

    3. Добавьте следующий контент в YAML-файл для создания классов хранилища по умолчанию по необходимости. Имя класса хранилища по умолчанию для файлового хранилищаefs-sc, для блочного хранилищаebs-sc.

      • Файловое хранилище EFS

        Примечание: Замените <File System ID> на фактический File System ID, например, fileSystemId: fs-05aef9e1edd309f2b.

        kind: StorageClass
        apiVersion: storage.k8s.io/v1
        metadata:
          name: efs-sc
        provisioner: efs.csi.aws.com
        parameters:
          provisioningMode: efs-ap
          fileSystemId: <File System ID>  
          directoryPerms: "755"
      • Блочное хранилище EBS

        allowVolumeExpansion: true
        apiVersion: storage.k8s.io/v1
        kind: StorageClass
        metadata:
          name: ebs-sc
        provisioner: ebs.csi.aws.com
        reclaimPolicy: Delete
        volumeBindingMode: WaitForFirstConsumer
    4. Нажмите Создать.

      Примечание: Если классы хранилища по умолчанию не соответствуют требованиям, создайте новые классы хранилища, следуя указанным шагам, и при необходимости измените параметры. См. Доступные параметры классов хранилища.

    Изменение назначения класса хранилища проекту

    1. В левом меню выберите Управление хранилищем > Классы хранилища.

    2. Нажмите на три точки рядом с классом хранилища с именем efs-sc или ebs-sc > Обновить проект.

    3. Выберите метод Назначение проекта по необходимости и нажмите Обновить для назначения класса хранилища проектам.

    Связанные операции

    Конфигурация доступных параметров класса хранилища

    • Доступные параметры файлового хранилища EFS

      ПараметрДопустимые значенияЗначение по умолчаниюНеобязательныйОписание
      az""даИспользуется для кросс-аккаунтного монтирования. Если указано, используется mount target, связанный с az, для кросс-аккаунтного монтирования; если не указано, случайным образом выбирается mount target для кросс-аккаунтного монтирования.
      basePathдаПуть для создания динамически выделяемых access points. Если не указано, access points создаются в корневом каталоге файловой системы.
      directoryPermsнетПрава доступа к каталогу для создания корневого каталога Access Point.
      uidдаPOSIX user ID для создания корневого каталога Access Point.
      gidдаPOSIX group ID для создания корневого каталога Access Point.
      gidRangeStart50000даНачальный диапазон POSIX group ID, применяемый при создании корневого каталога access point. Не требуется, если заданы uid/gid.
      gidRangeEnd7000000даКонечный диапазон POSIX group ID. Не требуется, если заданы uid/gid.
      subPathPatternдаШаблон для построения подпутей, в которых располагается каждый access point, созданный при динамическом выделении. Может состоять из фиксированных строк и ограниченных переменных, аналогично переменной "subPathPattern" в чарте nfs-subdir-external-provisioner. Допустимые параметры: .PVC.name, .PVC.namespace, .PV.name.
      ensureUniqueDirectorytrueдаИспользуется при включенном динамическом выделении. При значении true добавляет UID к шаблону, указанному в subPathPattern, чтобы гарантировать, что access points не указывают случайно на один и тот же каталог. Примечание: устанавливайте в false только если уверены, что это желаемое поведение.
      provisioningModeefs-apнетТип тома EFS, в настоящее время поддерживаются access points.
      fileSystemIdнетID файловой системы, для которой создается access point.
    • Доступные параметры блочного хранилища EBS

      Примечание: Для параметров производительности разных типов томов смотрите Amazon EBS Volume Types.

      ПараметрДопустимые значенияЗначение по умолчаниюОписание
      "allowAutoIOPSPerGBIncrease"true, falsefalseПри значении "true" драйвер CSI увеличивает IOPS тома, если iopsPerGB * <размер тома> слишком низок для соответствия поддерживаемому AWS диапазону IOPS. Это гарантирует успешное динамическое выделение даже при слишком малых значениях емкости PVC или iopsPerGB, но может привести к дополнительным расходам из-за избыточных IOPS.
      "blockExpress"true, falsefalseСоздает тома io2 Block Express, повышая лимиты IOPS для томов io2 до 256000, но тома с IOPS выше 64000 не могут быть смонтированы на инстансах, не поддерживающих io2 Block Express.
      "blockSize"Размер блока, используемый при форматировании базовой файловой системы. Применимо только к Linux-ноду с файловыми системами ext2, ext3, ext4 или xfs.
      "bytesPerINode"Количество байт на inode при форматировании базовой файловой системы. Применимо только к Linux-ноду с файловыми системами ext2, ext3 или ext4.
      "csi.storage.k8s.io/fstype"xfs, ext2, ext3, ext4ext4Тип файловой системы для форматирования при создании томов. Чувствительно к регистру.
      "encrypted"true, falsefalseТребуется ли шифрование тома.
      "inodeSize"Размер inode при форматировании базовой файловой системы. Применимо только к Linux-ноду с файловыми системами ext2, ext3, ext4 или xfs. Inode — структуры данных в файловых системах, хранящие метаданные файлов и каталогов.
      "iops"Количество операций ввода-вывода в секунду, применимо к томам IO1, IO2 и GP3.
      "iopsPerGB"Количество операций ввода-вывода в секунду на гигабайт, применимо к томам IO1, IO2 и GP3.
      "kmsKeyId"Полный ARN ключа для шифрования томов. Если не указан, AWS использует ключ KMS по умолчанию для региона тома и автоматически генерирует ключ с именем /aws/ebs.
      "numberOfINodes"Количество inodes, задаваемое при форматировании базовой файловой системы. Применимо только к Linux-ноду с файловыми системами ext2, ext3 или ext4.
      "throughput"125Пропускная способность в МиБ/с. Действительно только при указании типа тома gp3. Если не указано, по умолчанию 125 МиБ/с. См. Amazon EBS Volume Types.
      "type"io1, io2, gp2, gp3, sc1, st1, standard, sbp1, sbg1gp3Тип тома EBS.