J03.01. Заявки на постоянные тома

Редактировал(а) Ирина Сафонова 06.01.2024, 23:12

Что такое заявка на постоянные тома?


Когда создаете рабочую нагрузку приложения в проекте, при необходимости создайте заявку на постоянные тома. Заявка на постоянные тома — функционал Cloud Managed Kubernetes, использующийся для создания запроса на хранение с дополнительным выделением постоянного хранилища для приложений. Постоянное хранилище управляется ресурсами постоянного тома. Том (Volume) — каталог, который доступен контейнерам в поде.

Администраторы кластера настраивают постоянные тома с помощью классов хранения. Для создания заявки в проекте кластера должен быть доступный класс хранения. Если при установке системы не настроен класс, OpenEBS устанавливается в кластере по умолчанию для предоставления локальных постоянных томов. OpenEBS не поддерживает подготовку динамического тома. На продуктивном стенде заранее настройте классы, чтобы предоставить сервис постоянного хранения для ваших приложений.

В статье описано, как создать, установить и использовать заявку на постоянные тома.

Необходимые условия перед выполнением настроек


Перед выполнением настроек:
1. Должны быть созданы:

Пользователь должен быть приглашен в проект и наделен ролью operator.

2. Если хотите динамически выделять том, то настройте класс хранения. Класс хранения должен поддерживать динамическое выделение ресурсов.

Создание заявки на постоянные тома


Cloud Managed Kubernetes привязывает заявку к постоянному тому, который удовлетворяет заданным вами для заявки запросам, например, емкости и режиму доступа. Когда создаете рабочую нагрузку приложения, выберите и подключите заявку к рабочей нагрузке.
1. Войдите в консоль как project-regular и перейдите в проект. Щелкните Persistent Volume Claims в разделе Storage на панели навигации. В результате выводится список заявок, подключенных к рабочим нагрузкам проекта.
2. Чтобы создать заявку, нажмите кнопку Create на странице Persistent Volume Claims.
3. В появившемся диалоговом окне задайте имя заявке, например, demo-volume, выберите проект и нажмите кнопку Next.

При необходимости просмотрите и отредактируйте файл манифеста заявки в формате YAML, нажав кнопку Edit YAML в правом верхнем углу.

4. На странице Storage Settings выберите способ создания заявки:

  • From Storage Class. При необходимости настройте классы хранения как до, так и после установки Cloud Managed Kubernetes.
  • From Volume Snapshot: чтобы использовать снапшот для создания заявки, создайте снимок тома.

В этом примере выберите From Storage Class.

5. Выберите класс хранилища из выпадающего списка.
6. В зависимости от выбранного вами класса хранилища в этом разделе могут отображаться разные режимы доступа, поскольку некоторые постоянные тома поддерживают только определенные режимы доступа. Cloud Managed Kubernetes предлагает три режима установки тома на выбор:

  • ReadWriteOnce. Том для чтения и записи одной нодой.
  • ReadOnlyMany. Том только для чтения несколькими нодами.
  • ReadWriteMany. Том для чтения и записи несколькими нодами.

7. В разделе Volume Capacity укажите размер заявки и нажмите кнопку Next.
8. При необходимости на странице Advanced Settings добавьте в заявку метаданные — метки и аннотации. Метаданные можно использовать как идентификаторы для поиска и планирования ресурсов.
9. Нажмите Create, чтобы завершить создание заявки.

В результате:

  • Созданная заявка отображается на странице Persistent Volume Claims в проекте.
  • После подключения к рабочей нагрузке проект изменится на Mounted в столбце Mount Status.

Недавно созданные заявки отображаются на странице Persistent Volume Claims в Cluster Management. Пользователи проекта, такие как project-regular, могут просматривать постоянные тома в столбце Persistent Volumes. Администраторы кластера просматривают и отслеживают созданные заявки в проекте. Если администратор кластера создает заявку для проекта в Cluster Management Kubernetes, заявка тоже отображается на странице Persistent Volume Claims.

Установка заявки на постоянные тома


Когда создаете рабочие нагрузки приложений, например, развертывания, набор состояния и набор даемона, подключите к ним заявки на постоянные тома. На странице Storage Settings отображаются различные тома, которые можно подключить к рабочей нагрузке.

ПараметрКомментарий
Add Persistent Volume Claim Template (доступно только в наборе состояния)

Шаблон заявки на постоянные тома используется для динамического создания заявок. Подключите заявки типа StorageClass к поду, задав имя, класс хранилища, режим доступа, емкость и путь, которые указаны в поле volumeClaimTemplates.

Mount Volume
  • Поддержка томов emptyDir и заявок на постоянные тома. Cluster Management Kubernetes предлагает два типа томов:
    • Persistent Volume. Используйте заявки на постоянные тома для монтирования. Тома можно использовать для сохранения постоянных данных пользователей. Создайте заявку, чтобы можно было выбрать существующую из списка.
    • Temporary Volume. Используйте том emptyDir для монтирования. Временный том представляет emptyDir. EmptyDirкоторый создается, когда под назначается ноде, и существует, пока этот под работает на этой ноде. Том emptyDir предлагает пустой каталог, из которого контейнеры в поде могут читать и записывать данные. В зависимости от среды развертывания том emptyDir может храниться на любом носителе, поддерживающем узел. Носитель может быть твердонакопительным или диском. Когда под удаляется из ноды, данные в emptyDir удаляются навсегда.
HostPath VolumeИспользуйте том hostPath для монтирования. HostPath монтирует файл или каталог из файловой системы хост-узла в под. Функционал не используется для большинства монтирований, однако предлагает некоторым приложениям аварийное завершение работы.
Mount ConfigMap or SecretПоддержка пар ключ-значение ConfigMap и секретных переменных.

Секретный том используется для предоставления конфиденциальной информации — пароли, токены OAuth и ключи SSH для подов. Секретные тома поддерживаются tmpfs — файловой системой с оперативной памятью — поэтому никогда не записываются в энергонезависимую память.

ConfigMap используется для хранения данных конфигурации в виде пар ключ-значение. Ресурс ConfigMap позволяет вводить данные конфигурации в поды. На данные, хранящиеся в объекте ConfigMap, можно ссылаться в томе типа СonfigMap, а затем использовать работающие в поде контейнерные приложения. ConfigMaps используются в следующих случаях:

  • Установка значения переменных среды.
  • Задание параметров команде в контейнерах.
  • Создание файла конфигурации в томах.

Просмотр и управление заявками на постоянные тома


При необходимости после создания заявки на постоянные тома:

  • просмотрите подробную информацию по заявке,
  • отредактируйте или используйте заявку.

Чтобы просмотреть сведения, щелкните на заявку на странице Persistent Volume Claims.

Просмотр сведений о томе

На странице Persistent Volume Claims щелкните том, чтобы просмотреть сведения.

1. Перейдите на вкладку Resource Status, чтобы просмотреть использование тома и установленные поды.
2. Перейдите на вкладку Metadata и просмотрите метки и аннотации тома.
3. Перейдите на вкладку Events и просмотрите события тома.
4. Перейдите на вкладку Snapshots и просмотрите снапшоты.

Редактирование данных тома

При необходимости отредактируйте заявку, нажав кнопку Edit Information на странице сведений. Нажмите кнопку More и отредактируйте файл YAML или удалите том.

Удаление тома

Чтобы удалить том, убедитесь, что он не подключен к какой-либо рабочей нагрузке. Чтобы размонтировать том, перейдите на страницу сведений о рабочей нагрузке. В раскрывающемся списке More нажмите  Edit Settings. В диалоговом окне  Edit Settings нажмите Storage. Наведите указатель мыши на том и щелкните значок мусорной корзины, чтобы размонтировать том.

Если в течение длительного времени после нажатия кнопки Delete статус тома остается Terminating, удалите его вручную по команде:

kubectl patch pvc <pvc-name> -p '{"metadata":{"finalizers":null}}'

Использование свойств тома

В раскрывающемся меню More предусмотрены другие дополнительные параметры, предоставляемые на основе базового подключаемого модуля хранилища, также известного как Storage Capability. Более подробная информация по Storage Capability по ссылке. Свойства включают в себя следующее:

  • Clone: сделайте копию тома.
  • Create Snapshot: создайте снимок тома, который можно использовать для создания заявки. Более подробная информация в статье Снапшоты тома.
  • Expand: увеличьте размер постоянного тома.

Нельзя уменьшить размер тома в консоли из-за возможной потери данных.

Некоторые встроенные в дерево или специальные подключаемые модули CSI могут не подпадать под действие Storage Capability. Если система не отображает правильные функции в кластере, при необходимости измените StorageCapability по инструкции Adjust Storage Capability by hand.

Мониторинг томов

Система извлекает метрические данные томов в режиме файловой системы из Kubelet для мониторинга, включая использование емкости и использование inode. Более подробно в статье Research on Volume Monitoring.

Просмотр списка и управление постоянными томами


Просмотр списка

1. Щелкните вкладку Persistent Volumes на странице Persistent Volume Claims, чтобы просмотреть страницу со списком постоянных томов. На странице представлена следующая информация:

ПараметрОписание
NameИмя тома, которое указывается в поле .metadata.name в файле манифеста тома.
StatusТекущее состояние PV. Он указывается полем .status.phase в файле манифеста PV, включая:
  • Available: том доступен и еще не привязан к заявке.
  • Bound: том привязан к заявке.
  • Deleting: том удаляется.
  • Failed: том недоступен.
CapacityМощность. Он указывается в поле .spec.capacity.storage файле манифеста тома.
Access ModeРежим доступа PV. Он указывается полем .spec.accessModes в файле манифеста PV, включая:
  • RWO: том может быть смонтирован для чтения и записи одной нодой.
  • ROX: том может быть установлен как доступный только для чтения несколькими нодами.
  • RWX: том может быть смонтирован для чтения и записи несколькими нодами.
Reclaim PolicyПолитика восстановления PV. Он указывается полем .spec.persistentVolumeReclaimPolicy в файле манифеста тома, включая:
  • Retain: при удалении заявки тои все еще существует и требует восстановления вручную.
  • Delete: удалите как том, так и связанные ресурсы хранения в инфраструктуре подключаемых подов тома.
  • Recycle: сотрите данные в томах и снова сделайте их доступными для новой заявки.
Creation TimeВремя создания тома.

2. Щелкните iconсправа от  тома, и вы сможете выполнить следующие действия:

  • Edit Information: редактирование данных тома.
  • Edit YAML: редактирование файла YAML тома.
  • Delete: удаление тома. Том в статусе Bound не может быть удален.

Просмотр страницы сведений о томе

1. Щелкните имя тома, чтобы перейти на страницу сведений.
2. На странице сведений нажмите кнопку Edit Information для редактирования параметров тома.
3. Нажмите More и при необходимости выполните следующее:

  • View YAML: просмотрите файл YAML тома.
  • Delete: удалите том и вернитесь на страницу списка.

Том со статусом Bound не может быть удален..

4. Щелкните вкладку Resource Status, чтобы просмотреть заявку, к которой привязан том.
5. Щелкните вкладку Metadata, чтобы просмотреть метки и аннотации тома.
6. Щелкните вкладку Events, чтобы просмотреть события тома.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰