Перейти к содержимому

Обзор

В Kubernetes постоянные тома предназначены для длительного хранения данных. Жизненный цикл постоянного тома не зависит от жизненного цикла использующего этот том пода, и после удаления или перезапуска пода данные остаются доступны.

В сервисе Managed Kubernetes постоянные тома подготавливаются на базе сетевых дисков сервиса Compute. Работать с сетевыми дисками позволяет CSI-драйвер MWS, который автоматически устанавливается в кластер Managed Kubernetes.

Управлять постоянными томами можно с помощью следующих объектов Kubernetes:

  • PersistentVolumeClaim (PVC) — запрос на том. В нем указываются размер тома, режим доступа к тому и ссылка на объект StorageClass.
  • PersistentVolume (PV) — том, доступный в кластере.
  • StorageClass — определяет параметры подготовки и использования тома.

В сервисе Managed Kubernetes поддерживается статическая и динамическая подготовка томов:

  • При статической подготовке пользователь вручную создает сетевой диск Compute, а также объекты PV и PVC.
  • При динамической подготовке пользователю достаточно создать только объект PVC. После этого CSI-драйвер автоматически создает сетевой диск Compute и соответствующий ему объект PV с параметрами из StorageClass.

Независимо от способа подготовки тома CSI-драйвер подключает сетевой диск к узлу, на котором запущен под. При переносе пода на другой узел CSI-драйвер переподключает сетевой диск.

По умолчанию в сервисе Managed Kubernetes используется объект StorageClass с именем mws. Он задает для создаваемого сетевого диска производительность в 1000 IOPS. Чтобы указать другое значение IOPS, создайте собственный объект StorageClass.

Важно

Сетевые диски, которые используются в качестве постоянных томов, оплачиваются по правилам тарификации сервиса Compute.

Сетевые диски Compute — зональные ресурсы. Это значит, что сетевой диск создается в определенной зоне доступности и может быть подключен только к узлам, расположенным в этой же зоне.

Если при динамической подготовке тома используется объект StorageClass по умолчанию, CSI-драйвер создает сетевой диск сразу после создания объекта PVC, не дожидаясь выбора узла для запуска пода. Поэтому диск может оказаться в другой зоне доступности, и подключить его к выбранному узлу не получится.

Чтобы сетевой диск оказался в зоне доступности узла, на котором будет запущен под, создайте новый объект StorageClass с параметром volumeBindingMode: WaitForFirstConsumer, например:

yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: mws-with-topology
provisioner: csi.mws.ru
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
iops: "10000"

В режиме WaitForFirstConsumer сетевой диск создается только после выбора узла для запуска пода. Благодаря этому CSI-драйвер может создать диск в зоне доступности выбранного узла.