• Русский
  • Конфигурация инициализации хранилища кластера 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.

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

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

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

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

    1. Перейдите в Platform Management и в левом меню выберите Storage Management > Storage Classes.

    2. Нажмите на выпадающее меню рядом с Create Storage Class > Create from 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. Нажмите Create.

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

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

    1. В левом меню выберите Storage Management > Storage Classes.

    2. Нажмите на три точки рядом с классом хранения с именем efs-sc или ebs-sc > Update Project.

    3. Выберите нужный метод Project Assignment и нажмите Update для назначения класса хранения проектам.

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

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

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

      ПараметрДопустимые значенияЗначение по умолчаниюНеобязательныйОписание
      az""trueИспользуется для кросс-аккаунтного монтирования. Если указано, используется mount target, связанный с az, для кросс-аккаунтного монтирования; если не указано, выбирается случайный mount target для кросс-аккаунтного монтирования.
      basePathtrueПуть для создания динамически выделяемых access points. Если не указано, access points создаются в корневом каталоге файловой системы.
      directoryPermsfalseРазрешения каталога для создания корневого каталога Access Point.
      uidtruePOSIX user ID для создания корневого каталога Access Point.
      gidtruePOSIX group ID для создания корневого каталога Access Point.
      gidRangeStart50000trueНачало диапазона POSIX group ID, применяемого при создании корневого каталога access point. Не требуется, если заданы uid/gid.
      gidRangeEnd7000000trueКонец диапазона POSIX group ID. Не требуется, если заданы uid/gid.
      subPathPatterntrueШаблон для построения подпутей, в которых располагаются access points, создаваемые при динамическом выделении. Может состоять из фиксированных строк и ограниченных переменных, аналогично переменной "subPathPattern" в чарте nfs-subdir-external-provisioner. Допустимые параметры: .PVC.name, .PVC.namespace, .PV.name.
      ensureUniqueDirectorytruetrueИспользуется при включенном динамическом выделении. Если установлено в true, к шаблону subPathPattern добавляется UID, чтобы гарантировать, что access points не указывают случайно на один и тот же каталог. Примечание: Устанавливайте в false только если уверены, что это желаемое поведение.
      provisioningModeefs-apfalseТип тома EFS, в настоящее время поддерживаются access points.
      fileSystemIdfalseID файловой системы, для которой создается access point.
    • Доступные параметры блочного хранилища EBS

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

      ПараметрДопустимые значенияЗначение по умолчаниюОписание
      "allowAutoIOPSPerGBIncrease"true, falsefalseПри установке в "true" драйвер CSI увеличивает IOPS тома, если iopsPerGB * <размер тома> слишком низок для соответствия поддерживаемому AWS диапазону IOPS. Это гарантирует успешное динамическое выделение даже при слишком малых значениях PVC или iopsPerGB, но может привести к дополнительным расходам из-за более высоких IOPS, чем требуется по iopsPerGB.
      "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"Количество inode, указанное при форматировании базовой файловой системы. Применимо только к Linux-нодам с файловыми системами ext2, ext3 или ext4.
      "throughput"125Пропускная способность в МиБ/с. Действительно только при указании типа тома gp3. Если пусто, по умолчанию 125 МиБ/с. См. Amazon EBS Volume Types.
      "type"io1, io2, gp2, gp3, sc1, st1, standard, sbp1, sbg1gp3Тип тома EBS.