Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Настройка групп безопасности
    • Подключение к узлу по SSH
    • Создание файла конфигурации
    • Обновление Kubernetes
    • Настройка автомасштабирования
    • Установка приложений
      • Основы работы с Cloud Marketplace
      • Установка Jaeger
      • Установка Metrics Provider
    • Сетевые сценарии
      • Обеспечение доступа к приложению, запущенному в кластере Kubernetes
      • Настройка контроллера сетевых политик Calico
      • Настройка контроллера сетевых политик Cilium
      • Настройка Node Local DNS для контроллера сетевых политик Cilium
    • Работа с постоянными томами
      • Динамическая подготовка тома
      • Статическая подготовка тома
      • Управление классами хранилищ
      • Увеличение размера тома для подов
      • Увеличение размера тома для контроллера StatefulSet
      • Подключение тома в блочном режиме
      • Интеграция с Yandex Object Storage
    • Управление кластером Kubernetes
      • Добавление учетных данных кластера Kubernetes в конфигурационный файл kubectl
      • Информация об имеющихся кластерах
      • Создание кластера Kubernetes
      • Изменение кластера Kubernetes
      • Создание пространства имен в кластере Kubernetes
      • Удаление кластера Kubernetes
    • Управление группой узлов
      • Информация об имеющихся группах узлов
      • Создание группы узлов
      • Изменение группы узлов
      • Управление метками узлов кластера Kubernetes
      • Удаление группы узлов
    • Подключение внешних узлов к кластеру
  • Практические руководства
    • Все руководства
    • Интеграция с Container Registry
    • Запуск рабочих нагрузок с GPU
    • Установка NGINX Ingress-контроллера с Let's Encrypt®
    • Настройка Application Load Balancer Ingress-контроллера
    • Резервное копирование в Object Storage
    • Горизонтальное масштабирование приложения в кластере
    • Работа со снапшотами
    • Интеграция с корпоративной зоной DNS
    • Автоматическое масштабирование DNS по размеру кластера
    • Настройка локального кеширования DNS
    • Настройка Fluent Bit для работы с Yandex Cloud Logging
    • Синхронизация с секретами Yandex Lockbox
    • Использование продуктов Yandex Cloud Marketplace
      • Использование Jaeger для трассировки запросов в Yandex Managed Service for YDB
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Релизные каналы и обновления
    • Шифрование секретов
    • Использование объектов API Kubernetes
      • Том
      • Сервис
    • Группа узлов
      • Автоматическое масштабирование группы узлов
      • Расселение подов с узла
      • Динамическое резервирование ресурсов для узла
      • Группы узлов с GPU
    • Сеть в Managed Service for Kubernetes
    • Внешние узлы кластера
    • Сетевые настройки и политики кластера
    • Автоматическое масштабирование
    • Квоты и лимиты
    • Рекомендации по использованию Managed Service for Kubernetes
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ClusterService
      • NodeGroupService
      • VersionService
      • OperationService
    • REST (англ.)
      • Overview
      • Cluster
        • Overview
        • create
        • delete
        • get
        • list
        • listNodeGroups
        • listNodes
        • listOperations
        • start
        • stop
        • update
      • NodeGroup
        • Overview
        • create
        • delete
        • get
        • list
        • listNodes
        • listOperations
        • update
      • Version
        • Overview
        • list
  • Вопросы и ответы
    • Общие вопросы
    • Хранилище данных
    • Настройка и обновление
    • Автоматическое масштабирование
    • Ресурсы
    • Логи
    • Все вопросы на одной странице
  1. Концепции
  2. Использование объектов API Kubernetes
  3. Том

Том

Статья создана
Yandex Cloud
  • Работа с постоянными томами
  • Режимы подключения постоянных томов
    • Том с файловой системой
    • Том без файловой системы
  • Подготовка томов
    • Динамическая подготовка тома
    • Статическая подготовка тома
  • Увеличение размера томов
  • Удаление томов

Данные для работы приложений в контейнерах можно хранить в самих контейнерах, но при этом возникают проблемы:

  • Когда контейнер аварийно завершает работу, kubelet перезапускает его, но файлы теряются — контейнер запускается с чистым состоянием.
  • Файлы в контейнере недоступны для других контейнеров, работающих в том же поде.

Эти проблемы решаются с помощью томов Kubernetes.

Том — общее хранилище для совместного использования объектами в разных контейнерах, развернутых в пределах одного или нескольких подов. Пользователь указывает в спецификации пода тома, которые будет содержать под, и путь, по которому контейнеры монтируют эти тома.

Для работы с томами Kubernetes оперирует объектами API Kubernetes: Volume, PersistentVolume, PersistentVolumeClaim, StorageClass.

Тома разделяются согласно их жизненному циклу:

  • Временные (Volume) — имеют то же время жизни, что и содержащие их поды. Эти тома создаются при создании пода и сохраняются при перезапуске контейнера. Когда под останавливается или удаляется, его тома уничтожаются.
  • Постоянные (PersistentVolume) — имеют свой собственный жизненный цикл. В этих томах данные сохраняются при удалении пода. Том можно размонтировать, например, для переноса данных на другой под или узел.

Временные и постоянные тома могут быть разных типов, в зависимости от хранилища. Ознакомьтесь с типами томов, поддерживаемых в Kubernetes.

Работа с постоянными томами

Работа с постоянными томами Kubernetes осуществляется с помощью объектов API PersistentVolume и PersistentVolumeClaim.

  • PersistentVolumes, PV — это ресурсы кластера Kubernetes, которые существуют независимо от подов. Это означает, что диск и данные, предоставленные PV, продолжают существовать при изменении кластера, а также при удалении и повторном создании подов.

    Ресурсы объекта PersistentVolume могут быть подготовлены динамически с помощью объектов PersistentVolumeClaims или заранее созданы администратором кластера Kubernetes.

  • PersistentVolumeClaim, PVC — используются для указания объектов PersistentVolumes в спецификации пода, так как объекты PersistentVolumes не могут быть указаны напрямую.

    Объекты PersistentVolumeClaim запрашивают определенный размер, режим доступа и класс хранилищ для объекта PersistentVolume. Если объект PersistentVolume, удовлетворяющий запросу, существует или может быть подготовлен, объект PersistentVolumeClaim связывается с необходимым объектом PersistentVolume. Кластер Kubernetes монтирует объект PersistentVolumeClaim в качестве тома для пода.

Пользователям часто необходимы объекты PersistentVolumes с различными свойствами. Администраторы кластеров Kubernetes могут предлагать различные объекты PersistentVolumes благодаря классам хранилищ.

Внимание

При удалении кластера Managed Service for Kubernetes диски Compute Cloud, связанные с PersistentVolumes, не удаляются автоматически.

Режимы подключения постоянных томов

Kubernetes поддерживает два режима подключения (volumeMode) постоянных томов (PersistentVolume): с файловой системой (Filesystem) и без нее (Block).

Если volumeMode не указан, значение по умолчанию: Filesystem.

Том с файловой системой

Вы можете указать в PersistentVolumeClaim режим подключения volumeMode: Filesystem, тогда Kubernetes создаст файловую систему на блочном хранилище перед его первым монтированием к поду.

Как подготовить под с томом в режиме volumeMode: Filesystem, читайте в разделе Динамическая подготовка тома.

Том без файловой системы

Вы можете установить значение volumeMode: Block, чтобы подключить том в качестве блочного хранилища без создания файловой системы. Приложение, запущенное на поде с таким томом, должно уметь работать с хранилищем без файловой системы.

Как подготовить под с томом в режиме volumeMode: Block, читайте в разделе Подключение тома в блочном режиме.

Подготовка томов

В Managed Service for Kubernetes можно использовать объекты PersistentVolumes на основе дисков Compute Cloud. Тип используемого диска и другие параметры можно установить с помощью соответствующих классов хранилищ.

Внимание

Диски Compute Cloud создаются в определенной зоне доступности. Это влияет на то, где могут быть перезапущены поды.

Динамическая подготовка тома

В большинстве случаев нет необходимости вручную создавать объекты PersistentVolumes и диски Compute Cloud. Вместо этого можно создать объекты PersistentVolumeClaim, и Kubernetes автоматически подготовит необходимый объект PersistentVolume и создаст диск.

Как динамически подготовить том, читайте в разделе Динамическая подготовка тома.

Статическая подготовка тома

Помимо создания новых дисков для подготовки объектов PersistentVolumes, вы можете использовать уже существующие диски Yandex Cloud.

Подробнее о статической подготовке тома с использованием облачных дисков читайте в разделе Статическая подготовка тома.

Увеличение размера томов

Вы можете увеличить размер тома Kubernetes после его создания. Увеличить размер можно только после завершения работы пода с томом.

Чтобы увеличить размер тома:

  1. Убедитесь, что в описании класса хранилища (StorageClass) указан параметр allowVolumeExpansion: true.
  2. Удалите под с томом, для которого нужно увеличить размер.
  3. Отредактируйте объект PersistentVolumeClaim, чтобы запросить больше места.
  4. Дождитесь увеличения размера тома.
  5. Создайте под, к которому будет монтирован том.

Как увеличить размер тома, читайте в разделе Увеличение размера тома для подов.

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

В зависимости от настроек объектов PersistentVolume и PersistentVolumeClaim соответствующие тома и диски могут удаляться автоматически или вручную.

  • При динамической подготовке тома: после удаления объекта PersistentVolumeClaim на основе классов хранилищ yc-network-hdd или yc-network-ssd, соответствующие объект PersistentVolume и диск Compute Cloud будут удалены.

  • При статической подготовке тома: вы можете указать, нужно ли удалять диск Compute Cloud при удалении объекта PersistentVolumeClaim. Для этого воспользуйтесь параметром persistentVolumeReclaimPolicy в PersistentVolumeSpec. По умолчанию для статически подготовленных подов используется значение Retain и диск Compute Cloud не удаляется.

При удалении кластера Managed Service for Kubernetes диски Compute Cloud, связанные с PersistentVolumes, не удаляются автоматически.

Подробнее о томах читайте в документации Kubernetes.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Работа с постоянными томами
  • Режимы подключения постоянных томов
  • Том с файловой системой
  • Том без файловой системы
  • Подготовка томов
  • Динамическая подготовка тома
  • Статическая подготовка тома
  • Увеличение размера томов
  • Удаление томов