Создать под со статически подготовленным томом Object Storage
В инструкции рассмотрим пример создания пода с постоянным хранилищем Object Storage, бакет которого создан заранее.
Перед началом работы
Проверьте, что в проекте подключен сервис Object Storage.
-
Для работы с объектным хранилищем на сервисный аккаунт необходимо назначить роли s3e.editor и s3e.viewer.
Создайте кластер Managed Kubernetes и хотя бы одну группу узлов.
При создании кластера выберите сервисный аккаунт, созданный на предыдущем шаге. Можно также использовать сервисный аккаунт, который создается автоматически, тогда все необходимые роли будут назначены сразу.
Создайте SNAT-шлюз для доступа к образу, который будете развертывать на поде.
Шаг 1. Создайте Persistent Volume
Создайте cloudru-s3-pv-static.yaml и сохраните манифест:
apiVersion : v1kind : PersistentVolumemetadata :name : cloudru-s3-pv-staticspec :storageClassName : ""accessModes :- ReadWriteManycapacity :storage : 10Gicsi :driver : s3.mk8s.csi.cloud.ruvolumeHandle : <bucket_id>Где:
storageClassName — название класса хранилища. Следует оставить параметр незаполненным.
spec.accessModes — режим доступа к тому. Необходимо указать ReadWriteMany.
spec.capacity.storage — размер постоянного тома.
spec.csi.driver — название драйвера, который будет использован для предоставления тома.
spec.csi.volumeHandle — идентификатор бакета Object Storage. ID можно скопировать из URL бакета.
Выполните команду:
kubectl create -f cloudru-s3-pv-static.yamlУбедитесь, что постоянный том создан, а его статус Available:
kubectl describe pv cloudru-s3-pv-static
Шаг 2. Создайте Persistent Volume Claim
Создайте файл cloudru-s3-pvc-static.yaml и сохраните манифест:
apiVersion : v1kind : PersistentVolumeClaimmetadata :name : cloudru-s3-pvc-staticspec :storageClassName : ""accessModes :- ReadWriteManyresources :requests :storage : 10GiГде spec.accessModes — режим доступа к тому. Необходимо указать ReadWriteMany.
Выполните команду:
kubectl create -f cloudru-s3-pvc-static.yamlУбедитесь, что PVC создан:
kubectl describe pvc cloudru-s3-pvc-staticОтобразится подробная информация о созданном PVC.
Проверьте статус постоянного тома:
kubectl get pv cloudru-s3-pv-staticПосле создания PVC статус постоянного тома должен измениться на Bound.
Шаг 3. Создайте под со статически подготовленным томом
Создайте cloudru-s3-pod-static.yaml и сохраните следующий манифест:
apiVersion : v1kind : Podmetadata :name : cloudru-s3-pod-staticspec :containers :- name : web-serverimage : nginxvolumeMounts :- mountPath : /pvname : cloudru-s3-pv-staticvolumes :- name : cloudru-s3-pv-staticpersistentVolumeClaim :claimName : cloudru-s3-pvc-staticГде:
spec.containers.image — образ для развертывания в контейнере.
spec.volumeMounts — параметры монтирования тома в контейнере.
spec.volumeMounts.name — название подключаемого тома.
spec.volumes.persistentVolumeClaim.claimName — название PVC-объекта.
Выполните команду:
kubectl create -f cloudru-s3-pod-static.yamlПроверьте статус Deployment:
kubectl get pod cloudru-s3-pod-staticРезультат:
NAME READY UP-TO-DATE AVAILABLE AGEcloudru-s3-pod-static 1 /1 1 1 61s
Шаг 4. Проверьте работу с хранилищем
Создайте файл в контейнере /pv/s3_file:
kubectl exec -ti cloudru-s3-pod-static -- touch /pv/s3_fileПроверьте, что файл попал в бакет.
Шаг 5. Удалите ресурсы
Если вы завершили работу с примером, удалите ресурсы.
Выполните последовательно команды:
kubectl delete pod cloudru-s3-pod-statickubectl delete pvc cloudru-s3-pvc-statickubectl delete pv cloudru-s3-pv-static
- Перед началом работы
- Шаг 1. Создайте Persistent Volume
- Шаг 2. Создайте Persistent Volume Claim
- Шаг 3. Создайте под со статически подготовленным томом
- Шаг 4. Проверьте работу с хранилищем
- Шаг 5. Удалите ресурсы