• Русский
  • Конфигурация инициализации хранилища кластера 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 point, созданный при динамическом выделении. Может состоять из фиксированных строк и ограниченных переменных, аналогично переменной "subPathPattern" в чарте nfs-subdir-external-provisioner. Опциональные параметры: .PVC.name, .PVC.namespace, .PV.name.
      ensureUniqueDirectorytruetrueИспользуется при включенном динамическом выделении. При значении true добавляет UID к шаблону subPathPattern, чтобы гарантировать, что 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.
      "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.