Контейнерное хранилище
Хранилище контейнеров CCE реализовано на основе Kubernetes container storage APIs (CSI). CCE интегрирует несколько типов облачного хранилища и охватывает различные сценарии применения. CCE полностью совместим с нативными сервисами хранилища Kubernetes, такими как emptyDir, hostPath, secret и ConfigMap.
Рисунок 1 Типы контейнерного хранилища

CCE позволяет pod'ам рабочих нагрузок использовать несколько типов хранилища:
- С точки зрения реализации, хранилище поддерживает Container Storage Interface (CSI) и нативное хранилище Kubernetes.
Тип
Описание
CSI
An вне‑дерева добавок к томам, который определяет стандартный API контейнерного хранилища и позволяет поставщикам хранилища использовать стандартные пользовательские плагины хранилища, монтируемые с помощью PVC и PV, без необходимости добавлять исходный код их плагина в репозиторий Kubernetes для единой сборки, компиляции и выпуска. CSI рекомендуется в Kubernetes 1.13 и более поздних версиях.
Нативное хранилище Kubernetes
Встроенный "in-tree" добавок к томам, который собирается, компилируется и выпускается вместе с репозиторием Kubernetes.
- С точки зрения носителей хранилища, хранилище может классифицироваться как облачное хранилище, локальное хранилище и объекты ресурсов Kubernetes.
Тип
Описание
Сценарий применения
Облачное хранилище
Носитель хранилища предоставляется поставщиками хранилища. Тома хранилища этого типа монтируются с помощью PVC и PV.
Данные требуют высокой доступности или должны быть общими, например, логи и медиа‑ресурсы.
Выберите подходящий тип облачного хранилища в зависимости от сценария применения. Подробнее см. Сравнение облачного хранилища.
Локальное хранилище
Носителем хранилища является локальный диск данных или память узла. Локальный PV — это пользовательский тип хранилища, предоставляемый CCE и монтируемый с помощью PVC и PV через CSI. Другие типы хранилища — нативное хранилище Kubernetes.
Данные без высокой доступности требуют высокой пропускной способности ввода‑вывода и низкой задержки.
Выберите подходящий тип локального хранилища в зависимости от сценария применения. Подробнее см. Сравнение локального хранилища.
Объекты ресурсов Kubernetes
ConfigMap и secret — это ресурсы, создаваемые в кластерах. Они являются специальными типами хранилища и предоставляются с помощью tmpfs (файловой системы на основе ОЗУ) на сервере API Kubernetes.
ConfigMap используется для внедрения конфигурационных данных в pod'ы.
Secret используется для передачи конфиденциальной информации, такой как пароли, в pod'ы.
Сравнение облачного хранилища
Элемент | EVS | SFS | SFS Turbo | OBS |
|---|---|---|---|---|
Определение | EVS предлагает масштабируемое блочное хранилище для облачных серверов. Обладая высокой надёжностью, высокой производительностью и богатыми характеристиками, диски EVS могут использоваться для распределённых файловых систем, сред разработки/тестирования, хранилищ данных и приложений высокопроизводительных вычислений (HPC). | SFS, расширяемый до петабайт, предоставляет полностью управляемое совместное файловое хранилище, обладающее высокой доступностью и стабильностью для обработки данных и приложений с интенсивным использованием пропускной способности в HPC, обработке медиа, совместном использовании файлов, управлении контентом и веб‑сервисах. | SFS Turbo, расширяемый до 320 ТБ, предоставляет полностью управляемое совместное файловое хранилище с высокой доступностью и стабильностью, поддерживая небольшие файлы и приложения, требующие низкой задержки и высокой производительности IOPS. SFS Turbo можно использовать на веб‑сайтах с высоким трафиком, для хранения логов, сжатия/разжатия, DevOps, корпоративных OA и контейнеризованных приложений. | Object Storage Service (OBS) предоставляет масштабируемое, безопасное и экономичное хранилище данных для хранения данных любого типа и размера. Его можно использовать в корпоративных резервных копиях/архивировании, видео по запросу (VoD), видеонаблюдении и многих других сценариях. |
Логика хранения данных | Хранит двоичные данные и не может напрямую хранить файлы. Для хранения файлов сначала отформатируйте файловую систему. | Хранит файлы и сортирует, отображает данные в иерархии файлов и папок. | Хранит файлы и сортирует, отображает данные в иерархии файлов и папок. | Хранит объекты. Файлы, хранящиеся напрямую, автоматически генерируют системные метаданные, которые также могут быть настроены пользователями. |
Режим доступа | Доступно только после монтирования к ECS и инициализации. | Монтируется к ECS с использованием сетевых протоколов. Необходимо указать сетевой адрес или сопоставить его с локальной директорией для доступа. | Поддерживает протокол Network File System (NFS) (только NFSv3). Вы можете бесшовно интегрировать существующие приложения и инструменты с SFS Turbo. | Доступно через Интернет или Direct Connect (DC). Укажите адрес бакета и используйте протоколы передачи, такие как HTTP или HTTPS. |
Статические тома хранилища | Поддерживается. Подробнее см. Использование существующего диска EVS через статический PV. | Поддерживается. Подробнее см. Использование существующей файловой системы SFS через статический PV. | Поддерживается. Подробнее см. Использование существующей файловой системы SFS Turbo через статический PV. | Поддерживается. Подробнее см. Использование существующего бакета OBS через статический PV. |
Динамические тома хранилища | Поддерживается. Подробнее см. Использование диска EVS через динамический PV. | Поддерживается. Подробнее см. Использование файловой системы SFS через динамический PV. | Не поддерживается | Поддерживается. Подробнее см. Использование бакета OBS через динамический PV. |
Функции | Нешарируемое хранилище. Каждый том может быть примонтирован только к одному узлу. | Общее хранилище с высокой производительностью и пропускной способностью | Общее хранилище с высокой производительностью и пропускной способностью | Общая файловая система пользовательского режима |
Сценарии применения | HPC, enterprise core cluster applications, enterprise application systems и dev/test ПРИМЕЧАНИЕ: Для HPC‑приложений здесь требуется высокоскоростное и high‑IOPS хранилище, например, в промышленном дизайне и энергетических исследованиях. | HPC, обработка медиа, управление контентом, веб‑сервисы, big data и аналитические приложения ПРИМЕЧАНИЕ: Для HPC‑приложений здесь требуется высокая пропускная способность и общее файловое хранилище, например, секвенирование генов и рендеринг изображений. | Веб‑сайты с высоким трафиком, хранение журналов, DevOps и enterprise OA | Аналитика big data, статический хостинг веб‑сайтов, онлайн‑видеопоток по запросу (VoD), секвенирование генов, интеллектуальное видеонаблюдение, резервное копирование и архивирование, и enterprise cloud boxes (web disks) |
Емкость | TB | SFS 1.0: PB | Общее назначение: TB | EB |
Задержка | 1–2 ms | SFS 1.0: 3–20 ms | Общее назначение: 1–5 ms | 10 ms |
Макс. IOPS | 2200–256000, в зависимости от флейворов | SFS 1.0: 2000 | Общее назначение: до 100 000 | Десятки миллионов |
Пропускная способность | MB/s | SFS 1.0: GB/s | Общее назначение: до GB/s | TB/s |
Сравнение локального хранилища
Элемент | Локальный PV | Локальный эфемерный том | emptyDir | hostPath |
|---|---|---|---|---|
Определение | Локальные диски узла образуют пул хранилища (VolumeGroup) через LVM. LVM делит их на логические тома (LV) и монтирует их к pod'ам. | Kubernetes native emptyDir, где локальные диски узла образуют пул хранилища (VolumeGroup) через LVM. LV создаются в качестве средства хранения emptyDir и монтируются к pod'ам. LV обеспечивают лучшую производительность, чем средство хранения по умолчанию для emptyDir. | Kubernetes native emptyDir. Его жизненный цикл такой же, как у pod. Память может быть указана как средство хранения. При удалении pod пустой том emptyDir удаляется, и его данные теряются. | Используется для монтирования каталога файлов хоста, где расположен pod, в указанную точку монтирования pod. |
Функции | Низкая задержка, high‑I/O и non‑HA PV. Тома хранилища являются нешарируемыми и привязаны к узлам через метки. Поэтому тома хранилища могут быть примонтированы только к одному pod. | Локальный эфемерный том. Объём хранилища берётся из локальных LV. | Локальный эфемерный том. Объём хранилища берётся из локального корневого каталога kubelet или памяти. | Используется для монтирования файлов или каталогов файловой системы хоста. Каталоги хоста могут создаваться автоматически. Pod'ы могут мигрировать (не привязаны к узлам). |
Монтирование тома хранилища | Статические тома хранилища не поддерживаются. Использование локального PV через динамический PV поддерживается. | Для получения подробной информации см. Local EV. | Для получения подробной информации см. Временный путь. | Для получения подробной информации см. hostPath. |
Сценарии применения | Требования к высокому I/O и встроенные HA-решения приложений, например, развёртывание MySQL в HA‑режиме. |
|
| Требуется файл узла, например, если используется Docker, можно использовать hostPath для монтирования /var/lib/docker путь узла. ВНИМАНИЕ: Избегайте использования томов hostPath насколько это возможно, так как они подвержены рискам безопасности. Если тома hostPath необходимо использовать, они могут применяться только к файлам или каталогам и монтироваться в режиме только для чтения. |
Enterprise Project Support
Для использования этой функции дополнение Everest должно быть обновлено до версии v1.2.33 или новее.
- Автоматическое создание хранилища:
При создании PVC EVS или OBS с использованием StorageClass в CCE можно указать enterprise project для назначения созданных ресурсов хранилища (диски EVS и OBS). Этот enterprise project может быть либо проектом по умолчанию, либо тем же, к которому относится кластер.
Если enterprise project не указан, enterprise project, указанный в StorageClass, будет использоваться по умолчанию для создания ресурсов хранилища.
- Для пользовательского StorageClass можно указать enterprise project в StorageClass. Для получения подробной информации см. Сценарий 3: Указание Enterprise Project для StorageClass. Если enterprise project не указан в StorageClass, используется enterprise project по умолчанию.
- Для классов хранилища csi-disk и csi-obs, предоставляемых CCE, созданные ресурсы хранилища принадлежат enterprise project по умолчанию.
- Использовать существующее хранилище:
При создании PVC с использованием PV, убедитесь, что everest.io/enterprise-project-id указанные в PVC и PV одинаковы, потому что во время создания ресурса хранилища был указан enterprise project. В противном случае PVC и PV не могут быть привязаны.
Документация
- Контейнер Хранилище
- Облако Хранилище Сравнение
- Локальный Хранилище Сравнение
- Enterprise Проект Поддержка
- Документация