CCE позволяет указать StorageClass для автоматического создания EVS disk и соответствующего PV. Эта функция применима, когда базовый том хранения недоступен.
Для кластеров v1.19.10 и новее, если используется политика HPA для масштабирования рабочей нагрузки с подключёнными EVS volumes, новый pod не может быть запущен, поскольку EVS disks нельзя подключать.
Параметр | Описание |
|---|---|
Тип PVC | В этом примере выберите EVS. |
Имя PVC | Введите имя PVC, которое должно быть уникальным в пространстве имён. |
Метод создания |
В этом примере выберите Dynamically provision. |
Классы хранилища | Классами StorageClasses по умолчанию для дисков EVS являются csi-disk и csi-disk-topology. ПРИМЕЧАНИЕ: Если вы используете csi-disk (EVS) StorageClass, PVC и PV будут созданы немедленно. Диск EVS создаётся вместе с PV, после чего PVC привязывается к PV. Если вы используете csi-disk-topology (EVS, создаваемый с задержкой) StorageClass, PV не будет создан сразу при создании PVC. Вместо этого сначала планируются pod‑ы, которые будут связаны с PVC, затем создаются диск EVS и PV, и в конце PV привязывается к PVC. Вы можете настроить StorageClass и сконфигурировать его политику возврата и режим привязки. Подробности см. в Creating a StorageClass Through the Console. |
(Optional) Storage Volume Name Prefix | Доступно только когда версия кластера v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 или более новая, и в кластере установлен Everest версии v2.4.15 или более новой. Этот параметр указывает имя базового хранилища, которое создаётся автоматически. Фактическое имя базового хранилища имеет формат «Storage volume name prefix + PVC UID». Если параметр оставлен пустым, будет использован префикс по умолчанию pvc. Например, если префикс имени базового хранилища установлен в test, фактическое имя базового хранилища будет test-{UID}. |
AZ | Выберите AZ диска EVS. AZ должен совпадать с AZ узла кластера. ПРИМЕЧАНИЕ: Диск EVS может быть смонтирован только на узел в том же AZ. После создания диска EVS его AZ изменить нельзя. |
Disk Type | Выберите тип диска EVS. Типы дисков EVS различаются в зависимости от регионов. Получите доступные типы EVS в консоли. |
Capacity (GiB) | Ёмкость запрашиваемого storage volume. |
Access Mode | Тома EVS поддерживают только ReadWriteOnce, что означает, что storage volume может быть смонтирован к одному узлу в режиме чтения/записи. Подробнее см. Volume Access Modes. |
Encryption | Настройте, следует ли шифровать базовое хранилище. Если вы выберете Enable, выберите целевой ключ или введите идентификатор ключа. Перед использованием шифрования проверьте, поддерживает ли регион, в котором находится EVS диск, шифрование дисков. |
Enterprise Project | Этот параметр доступен только для корпоративных аккаунтов с включёнными enterprise projects. enterprise project может быть проектом по умолчанию, проектом, в котором находится кластер, или проектом, указанным в StorageClass. |
Resource Tag | Вы можете добавлять resource tags для классификации ресурсов. Эта функция поддерживается только при версии Everest в кластере v2.1.39 или более новой. Вы можете создавать predefined tags в консоли TMS. Эти теги доступны всем ресурсам, поддерживающим теги. Вы можете использовать эти теги для повышения эффективности создания тегов и миграции ресурсов. CCE автоматически создаёт системные теги CCE-Cluster-ID={cluster-ID}, CCE-Cluster-Name={cluster-name} и CCE-Namespace={namespace-name}. Эти теги нельзя изменить. ПРИМЕЧАНИЕ: После создания динамического PV типа EVS теги ресурсов нельзя обновить в консоли CCE. Чтобы обновить эти теги ресурсов, перейдите в консоль EVS. |
Вы можете выбрать Storage в панели навигации и просмотреть созданные PVC и PV на вкладках PVCs и PVs соответственно.
Подключите и используйте тома хранилища. Подробную информацию о параметрах см. в Table 1. О других параметрах см. в Workloads.
Параметр | Описание |
|---|---|
PVC | Выберите существующий том EVS. Том EVS может быть подключен только к одной рабочей нагрузке. |
Mount Path | Введите путь монтирования, например, /tmp. Этот параметр указывает путь контейнера, в который будет подключён том данных. Не монтируйте том в системный каталог, такой как / или /var/run. Это может привести к ошибкам контейнера. Монтируйте том в пустой каталог. Если каталог не пуст, убедитесь, что в нём нет файлов, влияющих на запуск контейнера. В противном случае файлы будут заменены, что приведёт к сбоям при запуске контейнера или создании рабочей нагрузки. Если том монтируется в каталог с высоким уровнем риска, используйте учётную запись с минимальными правами для запуска контейнера. В противном случае файлы с высоким уровнем риска на хосте могут быть повреждены. |
Subpath | Введите подкаталог тома хранения и смонтируйте путь в томе к контейнеру. Таким образом, разные папки одного тома хранения могут использоваться в одном pod. tmp, например, указывает, что данные в пути монтирования контейнера хранятся в папке tmp тома хранения. Если этот параметр оставить пустым, по умолчанию будет использоваться корневой путь. |
Permission |
|
В этом примере диск монтируется в путь /data контейнера. Данные контейнера, генерируемые в этом пути, сохраняются в EVS диск.
Несовместный EVS диск может быть присоединён только к одному workload pod. Если существует несколько pod'ов, дополнительные pod'ы не смогут запуститься корректно. Убедитесь, что количество workload pod равно 1, если присоединён EVS диск.
После создания workload данные в каталоге монтирования контейнера будут сохраняться постоянно. Проверьте хранилище, обратившись к Verifying Data Persistence.
apiVersion: v1kind: PersistentVolumeClaimmetadata:name: pvc-evs-autonamespace: defaultannotations:everest.io/disk-volume-type: SAS # EVS disk typeeverest.io/crypt-key-id: <your_key_id> # (Optional) Encryption key ID. Mandatory for an encrypted disk.everest.io/enterprise-project-id: <your_enterprise_project_id> # (Optional) Enterprise project IDeverest.io/disk-volume-tags: '{"key1":"value1","key2":"value2"}' # (Optional) Custom resource tagseverest.io/csi.volume-name-prefix: test # (Optional) Storage volume name prefix of the automatically-created underlying storagelabels:failure-domain.beta.kubernetes.io/region: <your_region> # Region of the node where the application is to be deployedfailure-domain.beta.kubernetes.io/zone: <your_zone> # AZ of the node where the application is to be deployedspec:accessModes:- ReadWriteOnce # The value must be ReadWriteOnce for EVS disks.resources:requests:storage: 10Gi # EVS disk capacity, ranging from 1 to 32768storageClassName: csi-disk # The StorageClass is EVS.
Параметр | Обязательно | Описание |
|---|---|---|
failure-domain.beta.kubernetes.io/region | Да | Регион, в котором расположен кластер. Для получения подробной информации о его значении см. Regions and Endpoints. |
failure-domain.beta.kubernetes.io/zone | Yes | Зона, в которой создан том EVS. Она должна совпадать с зоной, запланированной для рабочей нагрузки. Для получения подробной информации о его значении см. Regions and Endpoints. |
everest.io/disk-volume-type | Yes | Тип диска EVS. Все буквы в верхнем регистре. |
everest.io/crypt-key-id | No | Этот параметр обязателен, когда диск EVS зашифрован. Укажите идентификатор ключа шифрования, выбранный при создании диска EVS. Можно использовать пользовательский ключ или ключ по умолчанию с именем evs/default. Чтобы получить ID ключа, войдите в DEW console, найдите ключ для шифрования и скопируйте ID ключа. |
everest.io/enterprise-project-id | No | Этот параметр указывает ID enterprise project, в котором создаётся диск EVS. Он применим только к enterprise accounts с включёнными enterprise projects. Чтобы получить ID enterprise project, войдите в EPS console, нажмите название целевого enterprise project и скопируйте ID enterprise project. |
everest.io/disk-volume-tags | No | (Optional) Этот параметр поддерживается, когда версия Everest в кластере v2.1.39 или новее. Вы можете добавить теги ресурсов для классификации ресурсов. Вы можете создать predefined tags в консоли TMS. Эти теги доступны всем ресурсам, поддерживающим теги. Вы можете использовать эти теги для повышения эффективности создания тегов и миграции ресурсов. CCE автоматически создаёт системные теги CCE-Cluster-ID={cluster-ID}, CCE-Cluster-Name={cluster-name} и CCE-Namespace={namespace-name}. Эти теги нельзя изменить. |
everest.io/csi.volume-name-prefix | No | (Optional) Этот параметр доступен только при версии кластера v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 или новее, а также при установленном в кластере Everest v2.4.15 или новее. Этот параметр указывает имя базового хранилища, которое создаётся автоматически. Фактическое имя базового хранилища имеет формат «префикс имени тома хранилища + PVC UID». Если параметр оставлен пустым, будет использован префикс по умолчанию pvc. Введите от 1 до 26 символов, которые не могут начинаться и заканчиваться дефисом (-). Допустимы только строчные буквы, цифры и дефисы (-). Например, если префикс имени тома хранилища установлен в test, фактическое базовое имя хранилища будет test-{UID}. |
storage | Yes | Запрошенный объём PVC в Gi. Значение — целое число в диапазоне от 1 до 32768. Если storage задан в виде десятичного числа, значение будет округлено в большую сторону для диска EVS. Например, если storage установлен в 10.1Gi, будет создан диск EVS объёмом 11 GiB. |
storageClassName | Yes | Имя StorageClass, которое равно csi-disk для диска EVS. |
kubectl apply -f pvc-evs-auto.yaml
apiVersion: apps/v1kind: StatefulSetmetadata:name: web-evs-autonamespace: defaultspec:replicas: 1selector:matchLabels:app: web-evs-autoserviceName: web-evs-auto # Headless Service nametemplate:metadata:labels:app: web-evs-autospec:containers:- name: container-1image: nginx:latestvolumeMounts:- name: pvc-disk # Volume name, which must be the same as the volume name in the volumes fieldmountPath: /data # Location where the storage volume is mountedimagePullSecrets:- name: default-secretvolumes:- name: pvc-disk # Volume name, which is user-definedpersistentVolumeClaim:claimName: pvc-evs-auto # Name of the created PVC---apiVersion: v1kind: Servicemetadata:name: web-evs-auto # Headless Service namenamespace: defaultlabels:app: web-evs-autospec:selector:app: web-evs-autoclusterIP: Noneports:- name: web-evs-autotargetPort: 80nodePort: 0port: 80protocol: TCPtype: ClusterIP
kubectl apply -f web-evs-auto.yaml
После создания рабочей нагрузки данные в каталоге монтирования контейнера будут сохраняться постоянно. Проверьте хранилище, обратившись к Verifying Data Persistence.
kubectl get pod | grep web-evs-auto
Ожидаемый вывод:
kubectl exec web-evs-auto-0 -- df | grep data
Ожидаемый вывод:
/dev/sdc 10255636 36888 10202364 0% /data
kubectl exec web-evs-auto-0 -- ls /data
Ожидаемый вывод:
lost+found
kubectl exec web-evs-auto-0 -- touch /data/static
kubectl exec web-evs-auto-0 -- ls /data
Ожидаемый вывод:
lost+foundstatic
kubectl delete pod web-evs-auto-0
Ожидаемый вывод:
pod "web-evs-auto-0" deleted
kubectl exec web-evs-auto-0 -- ls /data
Ожидаемый вывод:
lost+foundstatic
Файл static сохраняется, что указывает на возможность постоянного хранения данных в EVS volume.
Вы также можете выполнить операции, перечисленные в Table 3.
Операция | Описание | Процедура |
|---|---|---|
Увеличение ёмкости диска EVS | Быстро увеличьте ёмкость подключённого тома EVS в консоли CCE. |
|
Просмотр событий | Просмотрите имена событий, типы событий, количество повторений, события Kubernetes, время первого появления и время последнего появления PVC или PV. |
|
Просмотр файла YAML | Просмотр, копирование или загрузка YAML‑файла PVC или PV. |
|
Редактирование политики возврата | Измените политику возврата PV. |
|
Синхронизация ёмкости PVC | Если базовое хранилище превышает размер PVC, измените ёмкость PVC в консоли CCE, чтобы она соответствовала новому размеру. |
|