- tocdepth
2
Создать под со статически подготовленным томом
В этой инструкции рассмотрен пример создания пода с предварительно подготовленным постоянным томом.
Перед началом работы
Создайте кластер с публичным IP-адресом и группу узлов.
Установите CSI-драйвер для работы с постоянными томами.
Создайте SNAT-шлюз для доступа к образу, который будете разворачивать на поде.
Подключитесь к созданному кластеру.
Создайте диск, если еще не создавали, и получите его идентификатор.
Шаг 1. Создайте постоянный том
Сохраните следующую спецификацию в файл
cloudru-pv.yaml
:apiVersion: v1 kind: PersistentVolume metadata: name: cloudru-pv spec: storageClassName: cloudru-nvme accessModes: - ReadWriteOnce capacity: storage: 10Gi csi: driver: mk8s.csi.cloud.ru volumeHandle: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx fsType: ext4 volumeMode: Filesystem persistentVolumeReclaimPolicy: Retain
Где:
metadata.name
— название постоянного тома.spec.storageClassName
— название класса хранилищ.spec.accessModes
— режим доступа к тому.spec.capacity.storage
— размер постоянного тома. Он должен совпадать с размером диска.spec.csi.driver
— название драйвера, который будет использован для предоставления тома.spec.csi.volumeHandle
— идентификатор диска.spec.csi.fsType
— тип файловой системы для монтирования.spec.volumeMode
— параметр, который определяет, будет ли том использоваться с отформатированной файловой системой или останется в состоянии блочного устройства.spec.persistentVolumeReclaimPolicy
— параметр, который определяет, что произойдет с постоянным томом при удалении соответствующего Persistent Volume Claim (PVC).
Подробное описание параметров для создания постоянного тома см. в документации Kubernetes.
Выполните команду:
kubectl create -f cloudru-pv.yaml
Если команда выполнена успешно, появится сообщение:
persistentvolume/cloudru-pv created
Убедитесь, что постоянный том создан, а его статус Available:
kubectl describe pv cloudru-pv
Отобразится подробная информация о постоянном томе.
Шаг 2. Создайте Persistent Volume Claim
Чтобы использовать постоянный том, необходимо создать Persistent Volume Claim.
Сохраните следующую спецификацию в файл
cloudru-pvc.yaml
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cloudru-pvc spec: storageClassName: cloudru-nvme volumeName: cloudru-pv accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
Где:
spec.storageClassName
— название класса хранилищ.spec.volumeName
— название подготовленного тома.spec.accessModes
— режим доступа к тому.spec.resources.requests
— минимальное количество ресурсов для выделяемого тома.spec.resources.requests.storage
— размер выделяемого тома. Должен быть меньше или равен размеру постоянного тома.
Подробное описание параметров для создания PVC см. в документации Kubernetes.
Выполните команду:
kubectl create -f cloudru-pvc.yaml
Если команда выполнена успешно, появится сообщение:
persistentvolumeclaim/cloudru-pvc created
Убедитесь, что PVC создан:
kubectl describe pvc cloudru-pvc
Отобразится подробная информация о созданном PVC.
Проверьте статус постоянного тома:
kubectl get pv cloudru-pv
После создания PVC статус постоянного тома должен измениться на Bound.
Шаг 3. Создайте под со статически подготовленным томом
Сохраните следующую спецификацию в файл
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 pod cloudru-pod
Результат:
NAME READY STATUS RESTARTS AGE cloudru-pod 1/1 Running 0 7m28s
Шаг 4. Удалите ресурсы
Если вы завершили работу с ресурсами, удалите их.
Удалите под:
kubectl delete pod cloudru-pod
Результат:
pod "cloudru-pod" deleted
Удалите Persistent Volume Claim:
kubectl delete pvc cloudru-pvc
Результат:
persistentvolumeclaim "cloudru-pvc" deleted
Удалите постоянный том:
kubectl delete pv cloudru-pv
Результат:
pod "cloudru-pv" deleted
для Dev & Test