- tocdepth
2
Создать под с динамически подготовленным томом
В этой инструкции рассмотрен пример создания пода с постоянным томом, который динамически подготавливается с помощью объекта Persistent Volume Claim (PVC).
Перед началом работы
Создайте кластер с публичным IP-адресом и группу узлов.
Установите CSI-драйвер для работы с постоянными томами.
Создайте SNAT-шлюз для доступа к образу, который будете разворачивать на поде.
Подключитесь к созданному кластеру.
Шаг 1. Создайте PVC
Создайте запрос на предоставление постоянного тома размером 6 ГБ и режимом доступа ReadWriteOnce.
Сохраните следующую спецификацию в файл
cloudru-pvc.yaml
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cloudru-pvc spec: storageClassName: cloudru-nvme accessModes: - ReadWriteOnce resources: requests: storage: 6Gi
Где:
spec.storageClassName
— название класса хранилищ.spec.accessModes
— режим доступа к тому.spec.resources.requests
— минимальное количество ресурсов для выделяемого тома.spec.resources.requests.storage
— размер тома. Допустимое значение — до 4 ТБ, кратное 1 ГБ.
Подробное описание параметров PVC см. в документации Kubernetes.
Выполните команду:
kubectl create -f cloudru-pvc.yaml
Если команда выполнена успешно, появится сообщение:
persistentvolumeclaim/cloudru-pvc created
Убедитесь, что PVC создан:
kubectl describe pvc cloudru-pvc
Отобразится подробная информация о созданном PVC.
Шаг 2. Создайте под с динамически подготовленным томом
Сохраните следующую спецификацию в файл
cloudru-pod.yaml
:apiVersion: v1 kind: Pod metadata: name: cloudru-pod spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: cloudru-storage volumes: - name: cloudru-storage persistentVolumeClaim: claimName: cloudru-pvc
Где:
spec.containers
— список контейнеров, которые хотите запустить на поде.spec.containers.name
— название контейнера.spec.containers.image
— образ для развертывания в контейнере.spec.volumeMounts
— параметры монтирования тома.spec.volumeMounts.mountPath
— путь к каталогу в файловой системе контейнера, куда должен быть смонтирован том.spec.volumeMounts.name
— название подключаемого тома.spec.volumes
— список параметров всех томов пода.spec.volumes.name
— название тома.spec.volumes.persistentVolumeClaim
— информация о PVC для соответствующего постоянного тома.spec.volumes.persistentVolumeClaim.claimName
— название PVC объекта.
Подробнее о параметрах спецификации для создания пода смотрите в документации Kubernetes.
Выполните команду:
kubectl create -f cloudru-pod.yaml
Результат:
pod/cloudru-pod created
Проверьте параметры постоянного тома:
kubectl get pv
Результат:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-32218813-09c7-4a5f-b768-5ca91c506272 6Gi RWO Delete Bound default/cloudru-pvc cloudru-nvme 16m
Проверьте статус пода:
kubectl get pod cloudru-pod
Результат:
NAME READY STATUS RESTARTS AGE cloudru-pod 1/1 Running 0 83m
Просмотреть информацию о созданных постоянных томах, отредактировать параметры или удалить том можно в сервисе «Диски».
Шаг 3. Удалите постоянный том
Если вы завершили работу с постоянным томом, его можно удалить. В примере достаточно удалить PVC, том удалится автоматически.
Уточните, какой PVC нужно удалить:
kubectl get pvс
Будет отображен список объектов PVC:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cloudru-pvc Bound pvc-32218813-09c7-4a5f-b768-5ca91c506272 6Gi RWO cloudru-nvme 92m
Где в столбце:
NAME — название PVC;
VOLUME — название постоянного тома, который соответствует PVC.
Выполните команду для удаления PVC:
kubectl delete pvc cloudru-pvc
Результат:
persistentvolumeclaim "cloudru-pvc" deleted
Внимание
Если под активно использует объект PVC, удаление будет отложено, а PVC переведен в статус Terminating. PVC будет удален вместе с постоянным томом, когда под закончит работу с ним.
Подробнее об этом читайте в документации Kubernetes.
Если необходимо, удалите под:
kubectl delete pod cloudru-pod
Результат:
pod "cloudru-pod" deleted
для Dev & Test