Модуль CSI Yandex Cloud (shturval-capy-csi)

О сервисе

ПараметрЗначение
Название в интерфейсеМодуль CSI Yandex Cloud
Системное название (идентификатор)shturval-capy-csi
Назначение в кластереДинамический провижининг дисков Yandex Cloud; подключение дисков Compute Cloud как PersistentVolume по запросу.
КритическийНет
Публичный репозиторийYandex Cloud CSI driver
Зависимостиshturval-networking
Неймспейсshturval-capy-csi

Назначение

shturval-capy-csi — модуль CSI для кластеров с провайдером Yandex Cloud. Драйвер disk-csi-driver.mks.ycloud.io создаёт диски в каталоге облака и подключает их к подам как PersistentVolume.

У сервисного аккаунта должна быть роль k8s.clusters.agent. Роли compute.editor и alb.editor нужны для узлов и балансировщика, их для CSI недостаточно.

Где настраивать

Сервисы и репозитории → Установленные сервисы → shturval-capy-csi → Управлять.

Настройка классов хранилища: StorageClasses (классы хранилища).

Автоматическая установка при создании кластера

Модуль устанавливается в кластере, если в экземпляре провайдера разрешена установка CSI и при создании клиентского кластера включена интеграция CSI.

При установке в кластер добавляются два StorageClass:

ИмяДискФайловая системаПривязка томаВозвратПо умолчанию
yc-network-hddnetwork-hddext4WaitForFirstConsumerDeleteДа, если этот CSI выбран провиженером по умолчанию
yc-network-ssdnetwork-ssdext4WaitForFirstConsumerDeleteНет

Расширение тома у этих классов выключено (allowVolumeExpansion: false).

customvalues по умолчанию
storageClasses:
  - name: yc-network-hdd
    isDefault: true
    type: network-hdd
    fstype: ext4
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: false
    reclaimPolicy: Delete
  - name: yc-network-ssd
    isDefault: false
    type: network-ssd
    fstype: ext4
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: false
    reclaimPolicy: Delete

Для работы модуля в кластере должен быть включён shturval-networking. Параметры чарта меняйте через ShturvalServicePatch (SSP).

По умолчанию при удалении кластера диски CSI в Yandex Cloud не удаляются. Чтобы удалить PV вместе с кластером, задайте это при создании кластера.

Установка вручную

Если интеграция CSI при создании кластера была выключена, перейдите в Сервисы и репозитории → Доступные чарты, найдите shturval-capy-csi в репозитории shturval, выберите режим управления Авто и версию чарта, неймспейс shturval-capy-csi и нажмите Сохранить.

Скриншот: установка чарта shturval-capy-csi

Установка чарта shturval-capy-csi

При установке в развернутом кластере содаются те же StorageClass, подключение к облаку необходимо сконфигурировать дополнительно:

В неймспейсе shturval-capy-csi создайте ConfigMap и Secrets.

  1. Хранилище → ConfigMaps → + Добавить ConfigMap. Имя — yc-csi-config. Ключ — folderId, в значении — ID папки.
  2. Хранилище → Secrets → создайте Secret. Имя — yc-csi-sa-key, тип — Opaque. Ключ — sa-key.json, значение — JSON-ключ сервисного аккаунта с ролью k8s.clusters.agent.
Пример ConfigMap и Secret
apiVersion: v1
kind: ConfigMap
metadata:
  name: yc-csi-config
  namespace: shturval-capy-csi
data:
  folderId: <folder-id>
---
apiVersion: v1
kind: Secret
metadata:
  name: yc-csi-sa-key
  namespace: shturval-capy-csi
type: Opaque
stringData:
  sa-key.json: |
        <содержимое JSON-ключа>

Имена объектов можно сменить через SSP: configMap.name, configMap.folderIdKey, secret.name, secret.key. Сами ID папки и ключ в customvalues не передаются.

Пример SSP
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: shturval-capy-csi-connection
spec:
  shturvalServiceConfigName: shturval-capy-csi
  customvalues:
    configMap:
      name: yc-disk-config
      folderIdKey: folderId
    secret:
      name: yc-disk-sa-key
      key: sa-key.json
ПараметрОписаниеТипПример
configMap.nameИмя ConfigMap в неймспейсе shturval-capy-csistringyc-disk-config
configMap.folderIdKeyКлюч ConfigMap, в котором лежит ID папкиstringfolderId
secret.nameИмя Secret в неймспейсе shturval-capy-csistringyc-disk-sa-key
secret.keyКлюч Secret с JSON-ключом сервисного аккаунтаstringsa-key.json

Как развернуть сервис — Как развернуть новый сервис.