CCE позволяет указать StorageClass для автоматического создания EVS disk и соответствующего PV. Эта функция применяется, когда базовый том хранения недоступен.
Для кластеров v1.19.10 и более новых, если используется политика HPA для масштабирования рабочей нагрузки с подключёнными EVS volume, новый pod не может быть запущен, поскольку EVS disks нельзя подключать.
Параметр | Описание |
|---|---|
Тип PVC | В этом примере выберите EVS. |
Имя PVC | Введите имя PVC, которое должно быть уникальным в пространстве имён. |
Метод создания |
В этом примере выберите Dynamically provision. |
Storage Classes | Стандартные StorageClasses для дисков EVS: csi-disk и csi-disk-topology. ПРИМЕЧАНИЕ: Если вы используете StorageClass csi-disk (EVS), PVC и PV будут созданы немедленно. Диск EVS создаётся вместе с PV, после чего PVC привязывается к PV. Если вы используете StorageClass csi-disk-topology (EVS, создаваемый с задержкой), PV не будет создан сразу при создании PVC. Сначала планируются pod‑ы, которые будут связаны с PVC, затем создаются диск EVS и PV, и в конце PV привязывается к PVC. Вы можете настроить StorageClass и задать его политику возврата и режим привязки. Подробности см. в Creating a StorageClass Through the Console. |
(Необязательно) 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 в кластере 2.1.39 или более новой. Вы можете создавать predefined tags в консоли TMS. Эти теги доступны всем ресурсам, поддерживающим теги. Вы можете использовать эти теги для повышения эффективности создания тегов и миграции ресурсов. CCE automatically creates system tags CCE-Cluster-ID=<cluster-ID>, CCE-Cluster-Name=<cluster-name>, and CCE-Namespace=<namespace-name>. These tags cannot be modified. ПРИМЕЧАНИЕ: После создания динамического PV типа EVS ресурсы тегов нельзя обновить в консоли CCE. Чтобы обновить эти resource tags, перейдите на страницу Elastic Volume Service в Cloud Server Console. |
Вы можете выбрать Storage в панели навигации и просмотреть созданные PVC и PV на вкладках PVCs и PVs соответственно.
Mount and use storage volumes. For details about the parameters, see Table 1. For other parameters, see Workloads.
Параметр | Описание |
|---|---|
PVC | Выберите существующий том EVS. Том EVS может быть подключен только к одной рабочей нагрузке. |
Mount Path | Введите путь монтирования, например, /tmp. Этот параметр указывает путь контейнера, в который будет подключён том данных. Не монтируйте том в системный каталог, такой как / или /var/run. Это может привести к ошибкам контейнера. Монтируйте том в пустой каталог. Если каталог не пуст, убедитесь, что в нём нет файлов, влияющих на запуск контейнера. В противном случае файлы будут заменены, что приведёт к сбоям при запуске контейнера или создании рабочей нагрузки. Если том монтируется в каталог с высоким уровнем риска, используйте учётную запись с минимальными правами для запуска контейнера. В противном случае файлы с высоким уровнем риска на хосте могут быть повреждены. |
Subpath | Введите подкаталог тома хранения и смонтируйте путь в томе к контейнеру. Таким образом, разные папки одного тома хранения могут использоваться в одном pod. tmp, например, указывает, что данные в пути монтирования контейнера хранятся в папке tmp тома хранения. Если этот параметр оставить пустым, по умолчанию будет использоваться корневой путь. |
Permission |
|
В этом примере диск монтируется в путь /data контейнера. Данные контейнера, созданные в этом пути, сохраняются на диске EVS.
Необщий диск EVS может быть присоединён только к одному pod нагрузки. Если существует несколько pod'ов, дополнительные pod'ы не смогут запуститься корректно. Убедитесь, что количество pod'ов нагрузки равно 1, если присоединён диск EVS.
После создания нагрузки данные в каталоге монтирования контейнера будут сохраняться постоянно. Проверьте хранилище, обратившись к 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 | Да | Регион, в котором расположен кластер. For details about its value, see Regions and Endpoints. |
failure-domain.beta.kubernetes.io/zone | Yes | Зона (AZ), в которой создан том EVS. Она должна совпадать с зоной (AZ), запланированной для рабочей нагрузки. For details about its value, see Regions and Endpoints. |
everest.io/disk-volume-type | Yes | Тип диска EVS. Все буквы записаны заглавными. |
everest.io/crypt-key-id | No | This parameter is mandatory when an EVS disk is encrypted. Enter the encryption key ID selected during EVS disk creation. You can use a custom key or the default key named evs/default. Чтобы получить ID ключа, войдите в DEW console, найдите ключ для шифрования и скопируйте ID ключа. |
everest.io/enterprise-project-id | Нет | Этот параметр указывает ID проекта предприятия, в котором создаётся диск EVS. Он применим только к корпоративным аккаунтам с включёнными проектами предприятия. Чтобы получить ID проекта предприятия, войдите в консоль EPS, нажмите название целевого проекта предприятия и скопируйте ID проекта предприятия. |
everest.io/disk-volume-tags | Нет | (Optional) Этот параметр поддерживается, когда версия Everest в кластере 2.1.39 или новее. Вы можете добавить теги ресурсов для классификации ресурсов. Вы можете создать predefined tags в консоли TMS. Эти теги доступны всем ресурсам, поддерживающим теги. Вы можете использовать эти теги для повышения эффективности создания тегов и миграции ресурсов. CCE automatically creates system tags CCE-Cluster-ID=<cluster-ID>, CCE-Cluster-Name=<cluster-name>, and CCE-Namespace=<namespace-name>. These tags cannot be modified. |
everest.io/csi.volume-name-prefix | Нет | (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:latest # Replace it with the correct image path for your application.volumeMounts:- 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.
Operation | Description | Procedure |
|---|---|---|
Увеличение ёмкости диска EVS | Быстро увеличьте ёмкость подключённого тома EVS в консоли CCE. |
|
Просмотр событий | Просмотрите имена событий, типы событий, количество повторений, события Kubernetes, время первого появления и время последнего появления PVC или PV. |
|
Просмотр файла YAML | Просмотрите, скопируйте или загрузите файл YAML PVC или PV. |
|
Редактирование политики возврата | Измените политику возврата PV. |
|
Синхронизация емкости PVC | Если базовое хранилище превышает размер PVC, измените размер емкости PVC в консоли CCE, чтобы он соответствовал новому размеру. |
|