Модуль CSI vSphere (vSphere CSI Driver)

В платформе “Штурвал” модуль vSphere Container Storage Interface driver позволяет использовать облачное хранилище платформы виртуализации vSphere. Модуль является драйвером Container Storage Interface (CSI) и отвечает за выделение постоянного тома (PersistentVolume), монтирование и отключение тома от виртуальной машины.

Установка чарта в кластер

Чтобы установить модуль в созданном кластере, в графическом интерфейсе:

  • перейдите в кластер;
  • боковом меню откройте раздел Сервисы и репозитории;
  • перейдите на страницу Доступные чарты;
  • на вкладке “shturval” найдите чарт shturval-capvs-csi и нажмите “Установить”.

Выберите необходимую версию чарта. После выбора версии чарта в правой части экрана отобразятся доступные “Параметры конфигурации для сервиса” (values). В блоке “Спецификация сервиса” необходимо указать в качестве customvalues:

  • глобальные параметры (global);
  • параметры доступа к vCenter-серверу (vcenter);
  • конфигурацию используемого StorageClass для PersistentVolume (storageclass).
Пример customvalues
global:
  config:
    global:
      insecure-flag: true
      cluster-id: <ваше значение параметра>
    storageclass:
      expansion: true
      datastoreurl: <ваше значение параметра>
    vcenter:
      <ваше значение vCenter>:
        server:  <ваше значение параметра>
        user:  <ваше значение параметра>
        password:  <ваше значение параметра>
        datacenters: 
          - <ваше значение параметра>
Параметр Описание Тип данных Пример
global.insecure-flag Включение проверки безопасности. Если vCenter использует самоподписной сертификат значение должно быть true boolean true
global.cluster-id Уникальное имя кластера string shturval-cluster
storageclass.expansion Определяет возможность динамического расширения PersistentVolumeClaim (PVC) boolean true
storageclass.datastoreurl URL хранилища данных (datastore) vSphere. В платформе виртуализации vSphere вы можете найти URL в разделе Summary хранилища данных (datastore) string ds:///vmfs/volumes/5f9ae8c0-e4bedd20-8f0c-0894ef5d8f68/
vcenter.<ваше значение vCenter> Имя vCenter string 10.11.12.13
vcenter.server IP-адрес или URL vCenter string 10.11.12.13
vcenter.user Имя пользователя для подключения к vCenter. Должно быть указано с доменом string shturval@domen.local
vcenter.password Пароль пользователя для подключения к vCenter string K8s_admin
vcenter.datacenters Список центров обработки данных (datacenters) array /DC03

Завершите установку чарта, сохранив настройку.

По завершении установки в кластер будет добавлен StorageClass с именем vsphere-csi. Чтобы в дальнейшем выделять PersistentVolumes в vsphere-csi, необходимо изменить настройки StorageClass, используемого по умолчанию.

Для этого в графическом интерфейсе:

  • перейдите на страницу StorageClasses раздела Хранилище;
  • откройте StorageClass с именем local-path и перейдите на вкладку Лейблы и аннотации;
  • удалите аннотацию storageclass.kubernetes.io/is-default-class:true и сохраните изменения.

Теперь для новых PersistentVolumeClaim (PVC) будет выделен PersistentVolume, принадлежащий vsphere-csi.

Учетная запись vCenter

В случае, если учетная запись доступа к vCenter-серверу изменилась, а в клиентском кластере установлен Vsphere Container Storage Interface driver, необходимо скорректировать настройки модуля:

  • перейдите в кластер, в боковом меню откройте раздел Сервисы и репозитории;
  • перейдите на страницу Установленные сервисы;
  • на вкладке “shturval” найдите Vsphere Container Storage Interface driver и перейдите к управлению;
  • в блоке Спецификация сервиса измените значения в параметрах user и password на валидные данные учетной записи.
Пример customvalues
global:
  config:
    vcenter:
      user: <ваше значение параметра>
      password: <ваше значение параметра>
Параметр Описание Тип данных Пример
vcenter.user Имя пользователя для подключения к vCenter. Должно быть указано с доменом string shturval@domen.local
vcenter.password Пароль пользователя для подключения к vCenter string K8s_admin
  • сохраните внесенные изменения.

Использование vSphereCSI в кластере с провайдером Shturval v2

Обратите внимание! Использование vSphere CSI в кластере с провайдером Shturval v2 возможно только с использованием хостов, развернутых на платформе виртуализации vSphere.

Если вы устанавливаете Vsphere Container Storage Interface driver при создании кластера с провайдером Shturval V2, то на каждом хосте перед необходимо выполнить настройки. - для кластера управления перед началом инсталляции;

  • для клиентского кластера - перед добавлением хостов в провайдер.

Включите параметр disk.EnableUUID, используя клиент vSphere.

  • В клиенте vSphere нажмите на VM, выберите пункт “Edit Settings”.
  • Перейдите на вкладку “VM Options” и разверните меню “Advanced”.
  • Нажмите “Edit Configuration” рядом с пунктом “Configuration Parameters”.
  • Настройте параметр disk.EnableUUID.
  • Если параметр существует, убедитесь, что его значение установлено в значение “True”. Если параметра нет, добавьте его и установите значение “True”.
Параметр disk.EnableUUID
    Name  Value
    disk.EnableUUID  True

Обновите версию аппаратного обеспечения VM до версии 15 или выше.

  • В клиенте vSphere перейдите к VM.
  • Выберите “Actions” > “Compatibility” > “Upgrade VM Compatibility”.
  • Нажмите “Yes”, чтобы подтвердить обновление.
  • Выберите совместимость и нажмите “OK”.

Добавьте VMware Paravirtual SCSI storage controller в VM.

  • В клиенте vSphere нажмите на VM и выберите пункт “Edit Settings”.
  • На вкладке “Virtual Hardware” нажмите “Add New Device”.
  • Выберите “SCSI Controller” из выпадающего меню.
  • Разверните “New SCSI controller” и в меню “Change Type” выберите “VMware Paravirtual”.
  • Нажмите “OK”.

Troubleshooting

Если вы развернули кластер с провайдером shturvalv2 на хостах платформы виртуализации vSphere и хотите добавить vSphere CSI в работающий кластер необходимо:

  1. Отредактировать ВМ нод кластера, выполнить настройки:

Включите параметр disk.EnableUUID, используя клиент vSphere.

  • В клиенте vSphere нажмите на VM, выберите пункт “Edit Settings”.
  • Перейдите на вкладку “VM Options” и разверните меню “Advanced”.
  • Нажмите “Edit Configuration” рядом с пунктом “Configuration Parameters”.
  • Настройте параметр disk.EnableUUID.
  • Если параметр существует, убедитесь, что его значение установлено в значение “True”. Если параметра нет, добавьте его и установите значение “True”.
Параметр disk.EnableUUID
    Name  Value
    disk.EnableUUID  True

Обновите версию аппаратного обеспечения VM до версии 15 или выше.

  • В клиенте vSphere перейдите к VM.
  • Выберите “Actions” > “Compatibility” > “Upgrade VM Compatibility”.
  • Нажмите “Yes”, чтобы подтвердить обновление.
  • Выберите совместимость и нажмите “OK”.

Добавьте VMware Paravirtual SCSI storage controller в VM.

  • В клиенте vSphere нажмите на VM и выберите пункт “Edit Settings”.
  • На вкладке “Virtual Hardware” нажмите “Add New Device”.
  • Выберите “SCSI Controller” из выпадающего меню.
  • Разверните “New SCSI controller” и в меню “Change Type” выберите “VMware Paravirtual”.
  • Нажмите “OK”.

Последовательно выполнить:

  1. Drain узла, и перезагрузку отредактированной ВМ.

  2. После загрузки узла выполнить uncordon, дождаться, когда нагрузка вернется на узел, перейти к drain следующего узла.

Выполнить на всех требуемых узлах.

  1. Если ранее был установленный vSphere CSI - удалите.

  2. Установите новый vSphere CSI в неймспейс shturval-capvs-csi.

  3. В customvalues добавьте конфиг, заполнив своими данными.

Пример customvalues
global:
  config:
    global:
      insecure-flag: true
      cluster-id: <ваше значение параметра>
    storageclass:
      expansion: true
      datastoreurl: <ваше значение параметра>
    vcenter:
      <ваше значение vCenter>:
        server:  <ваше значение параметра>
        user:  <ваше значение параметра>
        password:  <ваше значение параметра>
        datacenters: 
          - <ваше значение параметра>

Параметр Описание Тип данных Пример
global.insecure-flag Включение проверки безопасности. Если vCenter использует самоподписной сертификат значение должно быть true boolean true
global.cluster-id Уникальное имя кластера string shturval-cluster
storageclass.expansion Определяет возможность динамического расширения PersistentVolumeClaim (PVC) boolean true
storageclass.datastoreurl URL хранилища данных (datastore) vSphere. В платформе виртуализации vSphere вы можете найти URL в разделе Summary хранилища данных (datastore) string ds:///vmfs/volumes/5f9ae8c0-e4bedd20-8f0c-0894ef5d8f68/
vcenter.<ваше значение vCenter> Имя vCenter string 10.11.12.13
vcenter.server IP-адрес или URL vCenter string 10.11.12.13
vcenter.user Имя пользователя для подключения к vCenter. Должно быть указано с доменом string shturval@domen.local
vcenter.password Пароль пользователя для подключения к vCenter string K8s_admin
vcenter.datacenters Список центров обработки данных (datacenters) array /DC03

Storage class создастся автоматически как default. Снимите флаг default с одного из StorageClass (local path или vSphere).