Хранилище (CSI)
Модуль локального хранения (RawFile Provisioner)
В этом разделе можно настроить сервис, который обеспечивает работу постоянного локального хранилища данных и реализует стандарт предоставления произвольных блоков и систем хранения файлов контейнерным рабочим нагрузкам в Комплексе. Сервис используется по умолчания для записи данных в качестве хранилища по умолчанию.
Не требует ручной настройки.
Модуль NFS оператора (NFS Provisioner)
Модуль NFS оператора (NFS Provisioner) является драйвером Network File System (NFS) Container Storage Interface (CSI). В кластерах Комплекса он позволяет использовать NFS для хранения данных. NFS Provisioner отвечает за:
- возможность статического, динамического предоставления Persistent Volumes (PV) на основе NFS;
- обеспечение совместного доступа к данным нескольким приложениями.
Установка в кластер
Модуль не является критически важным для работы Комплекса. По умолчанию модуль устанавливается в кластер управления отключенным, в клиентские кластеры не устанавливается.
Важно:
- Для работы NFS в кластере на узлах требуется инсталлировать клиента NFS. Например, для дистрибутива RPM нужно установить пакет утилит nfs-utils, для DEB ‒ nfs-common.
- В кластерах с ОС Astra Linux до версии 1.7.6 (включительно) при использовании NFS Provisioner может возникнуть "утечка памяти", что приведет к OOM (Out of Memory) и падению подов в кластере. Во избежание потери работоспособности в кластере следует воспользоваться одним из способов:
- При установки Модуля NFS оператора в customvalues использовать третий сервер (nfsvers=3). Подробнее о конфигурации модуля см. в пп. Кластер управления и Клиентский кластер.
- Обновить версию Astra Linux до 1.7.7. Инструкция по обновлению представлена на странице документации Astra Linux.
После обновления версии Astra Linux в провайдерах инфраструктуры (VMware vSphere, oVirt, OpenStack, Basis Dynamix, Yandex Cloud) кластеров потребуется заменить шаблоны ВМ со старыми версиями.
Кластер управления
Чтобы включить модуль в развернутом кластере управления, нужно перейти на страницу "Установленные сервисы" раздела "Сервисы и репозитории" в графическом интерфейсе, найти "Модуль NFS оператора" (shturval-nfs-csi) и перейти к управлению.
В блоке "Спецификация сервиса" можно указать параметры для создания Storage Class с провижинером nfs.csi.k8s.io в кластере или добавить Storage Class после включения модуля.
Пример добавления Storage Class в спецификации:
storageClass:
create: true
name: nfs-csi
parameters:
server: 10.11.12.13
share: /nfs # Адрес шары
mountOptions:
‒ nfsvers=3
reclaimPolicy: Delete
volumeBindingMode: Immediate
где вместо 10.11.12.13 указать IP-адрес NFS-сервера. В mountOptions можно указать дополнительные функции монтирования. При установке сервиса рекомендуется использовать третий сервер (nfsvers=3), поскольку у четвертого (nfsvers=4.1) наблюдается утечка ресурсов.
Далее следует выбрать автоматический режим управления (Авто).
Клиентский кластер
Чтобы установить "Модуль NFS оператора" в созданном клиентском кластере, нужно перейти на страницу на страницу "Доступные чарты" раздела "Сервисы и репозитории". На вкладке "shturval" выбрать чарт shturval-nfs-csi и нажать Установить.
Далее требуется выбрать необходимую версию чарта, а также создать неймспейс nfs. После выбора версии чарта в правой части экрана отобразятся "Доступные параметры конфигурации для сервиса" (values). Следует прописать в блоке "Спецификация сервиса" необходимые параметры в качестве customvalues.
В блоке "Спецификация сервиса" можно указать параметры для создания Storage Class с провижинером nfs.csi.k8s.io в кластере или добавить Storage Class после включения модуля.
Пример добавления Storage Class в спецификации:
storageClass:
create: true
name: nfs-csi
parameters:
server: 10.11.12.13
share: /nfs # Адрес шары
mountOptions:
‒ nfsvers=3
reclaimPolicy: Delete
volumeBindingMode: Immediate
где вместо 10.11.12.13 указать IP-адрес NFS сервера. В mountOptions можно указать дополнительные функции монтирования. При установке сервиса рекомендуется использовать третий сервер (nfsvers=3), поскольку у четвертого (nfsvers=4.1) наблюдается утечка ресурсов.
Далее следует выбрать автоматический режим управления (Авто).
Для корректной работы Модуля NFS в кластере должен быть включен "Модуль управления сетями кластера" (shturval-networking).
Модуль CEPH CSI
В РОСА Кубис в кластере доступны для установки драйверы Ceph Container Storage Interface (CSI) для RBD, CephFS:
- Модуль Ceph CSI ‒ CephFS (shturval-ceph-cephfs);
- Модуль Ceph CSI ‒ CephRBD (shturval-ceph-rbd).
В кластерах Kubernetes модули позволяют использовать виртуальный жесткий диск (RBD) или сетевую файловую систему (FS) для хранения данных.
Модули Ceph CSI не являются критически важными сервисами для работы Комплекса. Для корректной работы Модулей Ceph CSI в кластере должен работать Модуль управления сетями кластера (shturval-networking).
Если при создании кластера были установлены Модули Ceph CSI, то в созданном кластере ручной настройки не потребуется.
Чтобы включить модули в созданном кластере, в графическом интерфейсе Комплекса нужно перейти в раздел "Сервисы и репозитории", открыть страницу "Установленные сервисы" и найти "Модуль Ceph CSI".
Для установки необходимо выбрать необходимый чарт (shturval-ceph-cephfs или shturval-ceph-rbd) и нажать Управлять. Затем в открывшемся окне требуется выбрать нужную версию. Рекомендуется создать для устанавливаемого чарта новый неймспейс.
После выбора версий в правой стороне экрана появятся доступные values чарта. Ниже представлены рекомендуемые параметры для конфигурации.
CEPH FS
Пример customvalues (описание параметров ‒ в таблице 110):
csiConfig:
‒ clusterID: <ваше значение параметра>
monitors:
‒ <ваше значение параметра>
‒ <ваше значение параметра>
‒ <ваше значение параметра>
secret:
Specifies whether the secret should be created
create: true
name: <ваше значение параметра>
Key values correspond to a user name and its key, as defined in the
ceph cluster. User ID should have required access to the 'pool'
specified in the storage class
adminID: <ваше значение параметра>
adminKey: <ваше значение параметра>
cephconf: |
<ваша конфигурация кластера ceph>
Workaround for http://tracker.ceph.com/issues/23446
fuse_set_user_groups = false
ceph-fuse which uses libfuse2 by default has write buffer size of 2KiB
adding 'fuse_big_writes = true' option by default to override this limit
see https://github.com/ceph/ceph-csi/issues/1928
fuse_big_writes = true
storageClass:
Specifies whether the Storage class should be created
create: true
name: <ваше значение параметра>
Annotations for the storage class
Example:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
annotations: {}
String representing a Ceph cluster to provision storage from.
Should be unique across all Ceph clusters in use for provisioning,
cannot be greater than 36 bytes in length, and should remain immutable for
the lifetime of the StorageClass in use.
clusterID: <ваше значение параметра>
(required) CephFS filesystem name into which the volume shall be created
eg: fsName: myfs
fsName: <ваше значение параметра>
(optional) Ceph pool into which volume data shall be stored
pool: <cephfs-data-pool>
For eg:
pool: "replicapool"
pool: "
(optional) Comma separated string of Ceph-fuse mount options.
For eg:
fuseMountOptions: debug
fuseMountOptions: "
(optional) Comma separated string of Cephfs kernel mount options.
Check man mount.ceph for mount options. For eg:
kernelMountOptions: readdir_max_bytes=1048576,norbytes
kernelMountOptions: "
(optional) The driver can use either ceph-fuse (fuse) or
ceph kernelclient (kernel).
If omitted, default volume mounter will be used ‒ this is
determined by probing for ceph-fuse and mount.ceph
mounter: kernel
mounter: "
(optional) Prefix to use for naming subvolumes.
If omitted, defaults to "csi-vol-".
volumeNamePrefix: "foo-bar-"
volumeNamePrefix: <ваше значение параметра>
The secrets have to contain user and/or Ceph admin credentials.
provisionerSecret: <ваше значение параметра>
If the Namespaces are not specified, the secrets are assumed to
be in the Release namespace.
provisionerSecretNamespace: "
controllerExpandSecret: <ваше значение параметра>
controllerExpandSecretNamespace: "
nodeStageSecret: <ваше значение параметра>
nodeStageSecretNamespace: "
reclaimPolicy: <ваше значение параметра>
allowVolumeExpansion: true
mountOptions: []
Mount Options
Example:
mountOptions:
‒ discard
nodeplugin:
tolerations:
‒ key: <ваше значение параметра>
operator: <ваше значение параметра>
value: <ваше значение параметра>
effect: <ваше значение параметра>
Требования к правам доступа сервисной учетной записи:
client.kubecephfs mon ‘allow r’ mgr ‘allow rw’ mds ‘allow rws’ osd ‘allow rw pool=cephfs_data, allow rw pool=cephfs_metadata’
CEPH RBD
Пример customvalues (описание параметров ‒ в таблице 111):
csiConfig:
‒ clusterID: <ваше значение параметра>
monitors:
‒ <ваше значение параметра>
‒ <ваше значение параметра>
‒ <ваше значение параметра>
storageClass:
Specifies whether the storageclass should be created
create: true
name: <ваше значение параметра>
Use Thick Provisioning for this storage class. Default: false. Enabled if not false.
thickProvision: false
Annotations for the storage class
Example:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
annotations: {}
(required) String representing a Ceph cluster to provision storage from.
Should be unique across all Ceph clusters in use for provisioning,
cannot be greater than 36 bytes in length, and should remain immutable for
the lifetime of the StorageClass in use.
clusterID: <ваше значение параметра>
(optional) If you want to use erasure coded pool with RBD, you need to
create two pools. one erasure coded and one replicated.
You need to specify the replicated pool here in the `pool` parameter, it is
used for the metadata of the images.
The erasure coded pool must be set as the `dataPool` parameter below.
dataPool: <ec-data-pool>
dataPool: "
(required) Ceph pool into which the RBD image shall be created
eg: pool: replicapool
pool: <ваше значение параметра>
(optional) RBD image features, CSI creates image with image-format 2 CSI
RBD currently supports `layering`, `journaling`, `exclusive-lock`,
`object-map`, `fast-diff`, `deep-flatten` features.
Refer https://docs.ceph.com/en/latest/rbd/rbd-config-ref/#image-features
for image feature dependencies.
imageFeatures: layering,journaling,exclusive-lock,object-map,fast-diff
imageFeatures: "
(optional) Specifies whether to try other mounters in case if the current
mounter fails to mount the rbd image for any reason. True means fallback
to next mounter, default is set to false.
Note: tryOtherMounters is currently useful to fallback from krbd to rbd-nbd
in case if any of the specified imageFeatures is not supported by krbd
driver on node scheduled for application pod launch, but in the future this
should work with any mounter type.
tryOtherMounters: false
(optional) uncomment the following to use rbd-nbd as mounter
on supported nodes
mounter: rbd-nbd
mounter: "
(optional) ceph client log location, eg: rbd-nbd
By default host-path /var/log/ceph of node is bind-mounted into
csi-rbdplugin pod at /var/log/ceph mount path. This is to configure
target bindmount path used inside container for ceph clients logging.
See docs/rbd-nbd.md for available configuration options.
cephLogDir: /var/log/ceph
cephLogDir: "
(optional) ceph client log strategy
By default, log file belonging to a particular volume will be deleted
on unmap, but you can choose to just compress instead of deleting it
or even preserve the log file in text format as it is.
Available options `remove` or `compress` or `preserve`
cephLogStrategy: remove
cephLogStrategy: "
(optional) Prefix to use for naming RBD images.
If omitted, defaults to "csi-vol-".
volumeNamePrefix: "foo-bar-"
volumeNamePrefix: "
(optional) Instruct the plugin it has to encrypt the volume
By default it is disabled. Valid values are "true" or "false".
A string is expected here, i.e. "true", not true.
encrypted: "true"
encrypted: "
(optional) Use external key management system for encryption passphrases by
specifying a unique ID matching KMS ConfigMap. The ID is only used for
correlation to configmap entry.
encryptionKMSID: "
Add topology constrained pools configuration, if topology based pools
are setup, and topology constrained provisioning is required.
For further information read TODO<doc>
topologyConstrainedPools: |
[{"poolName":"pool0",
"dataPool":"ec-pool0" # optional, erasure-coded pool for data
"domainSegments":[
{"domainLabel":"region","value":"east"},
{"domainLabel":"zone","value":"zone1"}]},
{"poolName":"pool1",
"dataPool":"ec-pool1" # optional, erasure-coded pool for data
"domainSegments":[
{"domainLabel":"region","value":"east"},
{"domainLabel":"zone","value":"zone2"}]},
{"poolName":"pool2",
"dataPool":"ec-pool2" # optional, erasure-coded pool for data
"domainSegments":[
{"domainLabel":"region","value":"west"},
{"domainLabel":"zone","value":"zone1"}]}
]
topologyConstrainedPools: []
(optional) mapOptions is a comma-separated list of map options.
For krbd options refer
https://docs.ceph.com/docs/master/man/8/rbd/#kernel-rbd-krbd-options
For nbd options refer
https://docs.ceph.com/docs/master/man/8/rbd-nbd/#options
Format:
mapOptions: "<mounter>:op1,op2;<mounter>:op1,op2"
An empty mounter field is treated as krbd type for compatibility.
eg:
mapOptions: "krbd:lock_on_read,queue_depth=1024;nbd:try-netlink"
mapOptions: "
(optional) unmapOptions is a comma-separated list of unmap options.
For krbd options refer
https://docs.ceph.com/docs/master/man/8/rbd/#kernel-rbd-krbd-options
For nbd options refer
https://docs.ceph.com/docs/master/man/8/rbd-nbd/#options
Format:
unmapOptions: "<mounter>:op1,op2;<mounter>:op1,op2"
An empty mounter field is treated as krbd type for compatibility.
eg:
unmapOptions: "krbd:force;nbd:force"
unmapOptions: "
The secrets have to contain Ceph credentials with required access
to the 'pool'.
provisionerSecret: <ваше значение параметра>
If Namespaces are left empty, the secrets are assumed to be in the
Release namespace.
provisionerSecretNamespace: <ваше значение параметра>
controllerExpandSecret: <ваше значение параметра>
controllerExpandSecretNamespace: <ваше значение параметра>
nodeStageSecret: <ваше значение параметра>
nodeStageSecretNamespace: <ваше значение параметра>
Specify the filesystem type of the volume. If not specified,
csi-provisioner will set default as `ext4`.
fstype: <ваше значение параметра>
reclaimPolicy: <ваше значение параметра>
allowVolumeExpansion: true
mountOptions: []
Mount Options
Example:
mountOptions:
‒ discard
Mount the host /etc/selinux inside pods to support
selinux-enabled filesystems
selinuxMount: true
secret:
Specifies whether the secret should be created
create: true
name: <ваше значение параметра>
Key values correspond to a user name and its key, as defined in the
ceph cluster. User ID should have required access to the 'pool'
specified in the storage class
userID: <ваше значение параметра>
userKey: <ваше значение параметра>
Encryption passphrase
encryptionPassphrase: test_passphrase
This is a sample configmap that helps define a Ceph configuration as required
by the CSI plugins.
Sample ceph.conf available at
https://github.com/ceph/ceph/blob/master/src/sample.ceph.conf Detailed
documentation is available at
https://docs.ceph.com/en/latest/rados/configuration/ceph-conf/
cephconf: |
<ваша конфигурация кластера ceph>
nodeplugin:
tolerations:
‒ key: <ваше значение параметра>
operator: <ваше значение параметра>
value: <ваше значение параметра>
effect: <ваше значение параметра>
Требования к правам доступа сервисной учетной записи:
client.kuberbd mon ‘profile rbd’ osd ‘profile rbd pool=kuberbd’
Особенности настройки
Если необходимо подключить несколько экземпляров CEPH FS или CEPH RBD в одном кластере, то нужно:
- установить экземпляры сервисов в разные неймспейсы кластера;
- в параметр driverName прописать произвольные различные между экземплярами сервисов значения;
- значение порта в параметре nodePlugin.httpMetrics.ContainerPort сделать уникальным для каждого экземпляра сервиса.
Модуль CSI vSphere (vSphere CSI Driver)
В РОСА Кубис модуль vSphere Container Storage Interface driver позволяет использовать облачное хранилище Комплекса виртуализации vSphere. Модуль является драйвером Container Storage Interface (CSI) и отвечает за выделение постоянного тома (PersistentVolume), монтирование и отключение тома от виртуальной машины.
Установка чарта в кластер
Модуль CSI vSphere не является критически важным сервисов для работы Комплекса.
Если при создании кластера с провайдером vSphere была включена интеграция CSI, то Модуль CSI vSphere будет установлен и ручной настройки не потребуется.
Чтобы установить модуль в созданном кластере, нужно в графическом интерфейсе:
- перейти в кластер;
- боковом меню открыть раздел "Сервисы и репозитории";
- перейти на страницу "Доступные чарты";
- на вкладке "shturval" найти чарт shturval-capvs-csi и нажать
Установить.
Далее следует выбрать необходимую версию чарта. После выбора версии чарта в правой части экрана отобразятся доступные "Параметры конфигурации для сервиса" (values). В блоке "Спецификация сервиса" необходимо указать в качестве customvalues:
- глобальные параметры (global);
- параметры доступа к vCenter-серверу (vcenter);
- конфигурацию используемого StorageClass для PersistentVolume (storageclass).
Пример customvalues (описание параметров ‒ в таблице 112):
global:
config:
global:
insecure-flag: true
cluster-id: <ваше значение параметра>
storageclass:
expansion: true
datastoreurl: <ваше значение параметра>
vcenter:
<ваше значение vCenter>:
server: <ваше значение параметра>
user: <ваше значение параметра>
password: <ваше значение параметра>
datacenters:
‒ <ваше значение параметра>
```
::app-collapsible
---
label: "Таблица 112 ‒ Параметры customvalues"
---
#content
<table border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
<th>Параметр</th>
<th>Описание</th>
<th>Тип данных</th>
<th>Пример</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>global.insecure-flag</strong></td>
<td><strong>Включение проверки безопасности. Если vCenter использует самоподписной сертификат значение должно быть </strong><strong>true</strong></td>
<td><strong>boolean</strong></td>
<td><strong>true</strong></td>
</tr>
<tr>
<td><strong>global.cluster-id</strong></td>
<td><strong>Уникальное имя кластера</strong></td>
<td><strong>string</strong></td>
<td><strong>shturval-cluster</strong></td>
</tr>
<tr>
<td><strong>storageclass.expansion</strong></td>
<td><strong>Определяет возможность динамического расширения PersistentVolumeClaim (PVC)</strong></td>
<td><strong>boolean</strong></td>
<td><strong>true</strong></td>
</tr>
<tr>
<td><strong>storageclass.datastoreurl</strong></td>
<td><strong>URL хранилища данных (datastore) vSphere. В платформе виртуализации vSphere можно найти URL в разделе </strong><strong>Summary</strong><strong> хранилища данных (datastore)</strong></td>
<td><strong>string</strong></td>
<td><strong>ds:///vmfs/volumes/5f9ae8c0-e4bedd20-8f0c-0894ef5d8f68/</strong></td>
</tr>
<tr>
<td><strong>vcenter.<ваше значение vCenter></strong></td>
<td><strong>Имя vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>10.11.12.13</strong></td>
</tr>
<tr>
<td><strong>vcenter.server</strong></td>
<td><strong>IP-адрес или URL vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>10.11.12.13</strong></td>
</tr>
<tr>
<td><strong>vcenter.user</strong></td>
<td><strong>Имя пользователя для подключения к vCenter. Должно быть указано с доменом</strong></td>
<td><strong>string</strong></td>
<td><strong>shturval@domen.local</strong></td>
</tr>
<tr>
<td><strong>vcenter.password</strong></td>
<td><strong>Пароль пользователя для подключения к vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>K8s_admin</strong></td>
</tr>
<tr>
<td><strong>vcenter.datacenters</strong></td>
<td><strong>Список центров обработки данных (datacenters)</strong></td>
<td><strong>array</strong></td>
<td><strong>/DC03</strong></td>
</tr>
</tbody>
</table>
::
Затем необходимо завершить установку чарта, сохранив настройку.
По завершении установки в кластер будет добавлен 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, необходимо скорректировать настройки модуля, для чего нужно подготовить ShturvalServicePatch для применения к спецификации (SSC) Модуль CSI vSphere (shturval-capvs-csi), где указать валидные данные учетной записи в параметрах user и password (описание параметров ‒ в таблице 113):
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-capvs-csi
customvalues:
global:
config:
vcenter:
<ваше значение vCenter>:
user: <ваше значение параметра>
password: <ваше значение параметра>
Заем следует загрузить в кластер с помощью импорта манифестов подготовленный ShturvalServicePatch. Для применения изменений может потребоваться время.
Использование 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.
Установка в развернутом кластере
Если был развернут кластер с провайдером Shturval v2 на хостах Комплекса виртуализации vSphere, и требуется добавить vSphere CSI в работающий кластер, необходимо:
- отредактировать ВМ нод кластера, выполнить настройки:
- включить параметр 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 или выше:
6. в клиенте vSphere перейти к VM;
7. выбрать "Actions → Compatibility → Upgrade VM Compatibility";
8. нажать
Yes, чтобы подтвердить обновление; 9. выбрать совместимость и нажать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;
- последовательно выполнить:
- Drain узла и перезагрузку отредактированной ВМ;
- после загрузки узла выполнить uncordon, дождаться, когда нагрузка вернется на узел, перейти к drain следующего узла;
- выполнить на всех требуемых узлах.
- если ранее был установленный vSphere CSI, то удалить;
- установить новый vSphere CSI в неймспейс shturval-capvs-csi;
- В customvalues добавить config, заполнив своими данными.
Пример customvalues (описание параметров ‒ в таблице 114):
global:
config:
global:
insecure-flag: true
cluster-id: <ваше значение параметра>
storageclass:
expansion: true
datastoreurl: <ваше значение параметра>
vcenter:
<ваше значение vCenter>:
server: <ваше значение параметра>
user: <ваше значение параметра>
password: <ваше значение параметра>
datacenters:
‒ <ваше значение параметра>
```
::app-collapsible
---
label: "Таблица 114 ‒ Параметры customvalues"
---
#content
<table border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
<th>Параметр</th>
<th>Описание</th>
<th>Тип данных</th>
<th>Пример</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>global.insecure-flag</strong></td>
<td><strong>Включение проверки безопасности. Если vCenter использует самоподписной сертификат значение должно быть </strong><strong>true</strong></td>
<td><strong>boolean</strong></td>
<td><strong>true</strong></td>
</tr>
<tr>
<td><strong>global.cluster-id</strong></td>
<td><strong>Уникальное имя кластера</strong></td>
<td><strong>string</strong></td>
<td><strong>shturval-cluster</strong></td>
</tr>
<tr>
<td><strong>storageclass.expansion</strong></td>
<td><strong>Определяет возможность динамического расширения PersistentVolumeClaim (PVC)</strong></td>
<td><strong>boolean</strong></td>
<td><strong>true</strong></td>
</tr>
<tr>
<td><strong>storageclass.datastoreurl</strong></td>
<td><strong>URL хранилища данных (datastore) vSphere. В платформе виртуализации vSphere можно найти URL в разделе </strong><strong>Summary</strong><strong> хранилища данных (datastore)</strong></td>
<td><strong>string</strong></td>
<td><strong>ds:///vmfs/volumes/5f9ae8c0-e4bedd20-8f0c-0894ef5d8f68/</strong></td>
</tr>
<tr>
<td><strong>vcenter.<ваше значение vCenter></strong></td>
<td><strong>Имя vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>10.11.12.13</strong></td>
</tr>
<tr>
<td><strong>vcenter.server</strong></td>
<td><strong>IP-адрес или URL vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>10.11.12.13</strong></td>
</tr>
<tr>
<td><strong>vcenter.user</strong></td>
<td><strong>Имя пользователя для подключения к vCenter. Должно быть указано с доменом</strong></td>
<td><strong>string</strong></td>
<td><strong>shturval@domen.local</strong></td>
</tr>
<tr>
<td><strong>vcenter.password</strong></td>
<td><strong>Пароль пользователя для подключения к vCenter</strong></td>
<td><strong>string</strong></td>
<td><strong>K8s_admin</strong></td>
</tr>
<tr>
<td><strong>vcenter.datacenters</strong></td>
<td><strong>Список центров обработки данных (datacenters)</strong></td>
<td><strong>array</strong></td>
<td><strong>/DC03</strong></td>
</tr>
</tbody>
</table>
::
Storage class создастся автоматически как default. Следует снять флаг default с одного из StorageClass (local path или vSphere).
## Модуль oVirt CSI (oVirt Provisioner)
В РОСА Кубис Модуль oVirt CSI позволяет использовать облачное хранилище Комплекса виртуализации oVirt. Модуль является драйвером Container Storage Interface (CSI) и отвечает за выделение постоянного тома (Persistent Volume), монтирование и отключение тома от виртуальной машины.
### Установка в кластер
Модуль oVirt CSI не является критически важным сервисов для работы Комплекса.
Если при создании кластера с провайдером oVirt была включена интеграция CSI, то Модуль oVirt CSI будет установлен, и ручной настройки не потребуется.
Чтобы включить модуль в созданном кластере, в графическом интерфейсе Комплекса нужно перейти на страницу "Установленные сервисы" раздела "Сервисы и репозитории", найти модуль oVirt CSI (shturval-capov-csi) и перейти к управлению.
В блоке "Спецификация сервиса" необходимо указать:
- параметры доступа к серверу (ovirtCredentials);
- конфигурацию используемого Storage для Persistent Volume (storageDomainName).
Пример customvalues (параметры описаны в таблице 115):
ovirtCredentials:
ovirtCaBundle: "<ваше значение параметра>"
ovirtInsecure: <ваше значение параметра>
ovirtPassword: "<ваше значение параметра>"
ovirtUrl: "<ваше значение параметра>"
ovirtUsername: "<ваше значение параметра>"
storageClass:
parameters:
storageDomainName: "<ваше значение параметра>"
*- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tClvQtNCw0L3QvdGL0LUg0LIg0LrQvtC00LjRgNC+0LLQutC1IGJhc2U2NF0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
Далее следует завершить установку модуля, выбрав необходимый режим управления, и нажать Сохранить.
Следует обратить внимание, что для корректной работы Модуля oVirt CSI в кластере должен работать Модуль управления сетями кластера (shturval-networking).
По завершении установки в кластер будет добавлен StorageClass с именем virt-csi. Чтобы в дальнейшем выделять PersistentVolumes в StorageClass ovirt-csi по умолчанию, необходимо изменить настройки StorageClass. Для этого в графическом интерфейсе:
- перейти на страницу "StorageClasses" раздела "Хранилище";
- открыть StorageClass с именем local-path и перейти на вкладку "Лейблы и аннотации";
- удалить аннотацию storageclass.kubernetes.io/is-default-class:true и сохранить изменения.
Теперь для новых PersistentVolumeClaim (PVC) будет выделен PersistentVolume, принадлежащий ovirt-csi.
Модуль CSI Openstack (CSI Cinder)
В Комплексе Модуль CSI Openstack позволяет использовать облачное хранилище Комплекса виртуализации Openstack. Модуль является драйвером Cinder CSI и отвечает за выделение постоянного тома (PersistentVolume), монтирование и отключение тома от виртуальной машины.
Установка в кластер
Модуль CSI Openstack не является критически важным сервисов для работы Комплекса. Если при создании кластера с провайдером Openstack была включена интеграция CSI, то Модуль CSI Openstack будет установлен автоматически и ручной настройки не потребуется.
Чтобы включить модуль в созданном кластере, в провайдере Openstack/VK Cloud/Selectel должна быть разрешена установка CSI. Для установки модуля в графическом интерфейсе Комплекса нужно перейти в раздел "Сервисы и репозитории" на страницу "Доступные чарты", на вкладке "shturval" найти модуль CSI Openstack (shturval-capos-csi) и перейти к установке.
Затем необходимо выбрать версию чарта и неймспейс shturval-capos-csi. Если неймспейс с таким именем отсутствует, следует создать его, нажав в выдающем списке поля "Неймспейс" на + Создать неймспейс.
При установке модуля в кластер будут добавлены StorageClasses с именами csi-cinder-sc-delete и csi-cinder-sc-retain. Затем в блоке "Спецификация сервиса" требуется указать StorageClass по умолчанию, как приведено в примере далее.
Пример (параметры описаны в таблице 116):
storageClass:
delete:
isDefault: true
Далее необходимо завершить установку модуля, нажав Сохранить.
После того как модуль установлен, для корректной работы csi потребуется создать Secret в неймспейсе shturval-capos-csi с данными конфигурации подключения провайдера, как в экземпляре провайдера, с которым создан кластер. Для этого нужно:
- сформировать конфигурацию подключения провайдера. Пример конфигурации подключения провайдера (параметры описаны в таблице 117):
[Global]
auth-url=<ваше значение параметра>
username=<ваше значение параметра>
password=<ваше значение параметра>
region=<ваше значение параметра>
tenant-id=<ваше значение параметра>
domain-name=<ваше значение параметра>
[BlockStorage]
ignore-volume-microversion=true
- в графическом интерфейсе кластера перейти в неймспейс shturval-capos-csi, далее в раздел "Хранилище" на страницу "Secrets" и создать секрет:
- задать имя cloud-config;
- выбрать тип Opaque;
- добавить ключ с именем cloud.conf, в значении которого указать подготовленную конфигурацию.
Пример созданного cloud-config:
apiVersion: v1 kind: Secret type: Opaque data: cloud.conf: W0dsb2JhbF0KYXV0aC11cmw9PNCy0LDRiNC1INC30L3QsNGH0LXQvdC40LUg0L/QsNGA0LDQvNC10YLRgNCwPgp1c2VybmFtZT080LLQsNGI0LUg0LfQvdCw0YfQtdC90LjQtSDQv9Cw0YDQsNC80LXRgtGA0LA+CnBhc3N3b3JkPTzQstCw0YjQtSDQt9C90LDRh9C10L3QuNC1INC/0LDRgNCw0LzQtdGC0YDQsD4KcmVnaW9uPTzQstCw0YjQtSDQt9C90LDRh9C10L3QuNC1INC/0LDRgNCw0LzQtdGC0YDQsD4KdGVuYW50LWlkPTzQstCw0YjQtSDQt9C90LDRh9C10L3QuNC1INC/0LDRgNCw0LzQtdGC0YDQsD4KZG9tYWluLW5hbWU9PNCy0LDRiNC1INC30L3QsNGH0LXQvdC40LUg0L/QsNGA0LDQvNC10YLRgNCwPgpbQmxvY2tTdG9yYWdlXQppZ25vcmUtdm9sdW1lLW1pY3JvdmVyc2lvbj10cnVl metadata: name: cloud-config namespace: shturval-capos-csi
Чтобы в дальнейшем выделять PersistentVolumes в StorageClass csi-cinder-sc-delete, csi-cinder-sc-retain по умолчанию, необходимо изменить настройки StorageClass local-path. Для этого в графическом интерфейсе нужно:
- перейти на страницу "StorageClasses" раздела "Хранилище";
- открыть StorageClass с именем local-path и перейти на вкладку "Лейблы и аннотации";
- удалить аннотацию storageclass.kubernetes.io/is-default-class:true и сохранить изменения.
Важно:
- Для работы Модуля CSI Openstack в кластере должен работать Модуль управления сетями кластера (shturval-networking).
- При использовании облачного хранилища Комплекса виртуализации Openstack в случае удаления кластера с провайдером OpenStack потребуется удалить вручную PVC в платформе виртуализации.
- Только для новых PersistentVolumeClaim (PVC) будет выделен PersistentVolume, принадлежащий StorageClass по умолчанию (csi-cinder-sc-delete, csi-cinder-sc-retain).