CCE позволяет указать StorageClass для автоматического создания EVS disk и соответствующего PV. Эта функция применима, когда базовый том хранения недоступен.
Для кластеров v1.19.10 и новее, если используется политика HPA для масштабирования рабочей нагрузки с подключёнными EVS volumes, новый 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 и задать его политику возврата и режим привязки. Подробности см. Basic StorageClass Settings. |
(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) | Ёмкость запрашиваемого тома хранилища. |
Access Mode | Тома EVS поддерживают только ReadWriteOnce, что означает, что том хранилища может быть смонтирован на один узел в режиме чтения/записи. Подробнее см. Volume Access Modes. |
Encryption | Настройте, следует ли шифровать базовое хранилище. Если вы выберете Enable, выберите целевой ключ или введите идентификатор ключа. Перед использованием шифрования проверьте, поддерживает ли регион, в котором находится EVS‑диск, шифрование дисков. |
Enterprise Project | Enterprise project управляет несколькими ресурсами по категориям. Ресурсы и проекты в разных регионах облачных сервисов могут быть объединены в один enterprise project. Например, предприятие может классифицировать ресурсы по отделам или группам проектов и разместить соответствующие ресурсы в одном enterprise project для унифицированного управления. Этот параметр доступен только для enterprise‑аккаунтов с включёнными enterprise projects. |
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, resource tags нельзя обновить в консоли CCE. Чтобы обновить эти resource tags, перейдите на страницу Elastic Volume Service в Cloud Server Console. |
Вы можете выбрать Storage в панели навигации и просмотреть созданные PVC и PV на вкладках PVCs и PVs соответственно.
Подключайте и используйте тома хранения. Для получения подробной информации о параметрах см. Table 1. Для остальных параметров см. Workloads.
Параметр | Описание |
|---|---|
PVC | Выберите существующий том EVS. Том EVS может быть подключен только к одному workload. |
Mount Path | Введите путь монтирования, например, /tmp. Этот параметр указывает путь контейнера, в который будет подключён том данных. Не монтируйте том в системный каталог, например / или /var/run. Это может привести к ошибкам контейнера. Подключайте том к пустому каталогу. Если каталог не пуст, убедитесь, что в нём нет файлов, влияющих на запуск контейнера. В противном случае файлы будут заменены, что приведёт к сбоям при запуске контейнера или создании workload. Если том подключён к каталогу с высоким риском, используйте учётную запись с минимальными правами для запуска контейнера. В противном случае файлы с высоким риском на хосте могут быть повреждены. |
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 ID of the new EVS diskeverest.io/disk-volume-tags: '{"key1":"value1","key2":"value2"}' # (Optional) Custom resource tagseverest.io/csi.volume-name-prefix: test # (Optional) 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 | Да | AZ, в которой создаётся EVS‑том. Она должна быть той же AZ, что запланирована для рабочей нагрузки. Для получения подробной информации о его значении см. Regions and Endpoints. |
everest.io/disk-volume-type | Да | Тип EVS‑тома. Все буквы в верхнем регистре. |
everest.io/crypt-key-id | Нет | Этот параметр обязателен, когда диск EVS зашифрован. Укажите идентификатор ключа шифрования, выбранный при создании диска EVS. Вы можете использовать пользовательский ключ или ключ по умолчанию с именем evs/default. Чтобы получить идентификатор ключа, войдите в DEW console, найдите ключ для шифрования и скопируйте идентификатор ключа. |
everest.io/enterprise-project-id | No | Идентификатор проекта предприятия, в котором создан диск EVS. Применяется только к корпоративным учетным записям с включенными проектами предприятия. Чтобы получить идентификатор проекта предприятия, войдите в консоль EPS, нажмите название целевого проекта предприятия и скопируйте идентификатор проекта предприятия. |
everest.io/disk-volume-tags | No | (Optional) Этот параметр поддерживается, когда версия Everest в кластере 2.1.39 или новее. Вы можете добавить теги ресурсов для классификации ресурсов. Вы можете создать predefined tags в консоли TMS. Эти теги доступны всем ресурсам, поддерживающим теги. Вы можете использовать эти теги для повышения эффективности создания тегов и миграции ресурсов. CCE автоматически создает системные теги CCE-Cluster-ID=\u003ccluster-ID\u003e, CCE-Cluster-Name=\u003ccluster-name\u003e, и CCE-Namespace=\u003cnamespace-name\u003e. Эти теги нельзя изменить. |
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: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
The static file is retained, indicating that the data in the EVS volume can be stored persistently.
Вы также можете выполнить операции, перечисленные в Table 3.
Операция | Описание | Процедура |
|---|---|---|
Увеличение ёмкости EVS‑диска | Быстро увеличьте ёмкость подключённого EVS‑тома в консоли CCE. |
|
Просмотр событий | Просмотрите имена событий, типы событий, количество появлений, события Kubernetes, время первого появления и время последнего появления PVC или PV. |
|
Просмотр YAML‑файла | Просмотрите, скопируйте или загрузите YAML‑файл PVC или PV. |
|
Редактирование политики возврата | Измените политику возврата PV. |
|
Синхронизация ёмкости PVC | Если базовое хранилище превышает размер PVC, измените ёмкость PVC в консоли CCE, чтобы она соответствовала новому размеру. |
|