Создать под с динамически подготовленным томом Object Storage
В инструкции рассмотрим пример создания пода с постоянным хранилищем Object Storage, бакет которого будет создан динамически.
Перед началом работы
Проверьте, что в проекте подключен сервис Object Storage.
-
Для работы с объектным хранилищем на сервисный аккаунт необходимо назначить роли s3e.editor и s3e.viewer.
Создайте кластер Managed Kubernetes и хотя бы одну группу узлов.
При создании кластера выберите сервисный аккаунт, созданный на предыдущем шаге. Можно также использовать сервисный аккаунт, который создается автоматически, тогда все необходимые роли будут назначены сразу.
Создайте SNAT-шлюз для доступа к образу, который будете развертывать на поде.
Шаг 1. Создайте Persistent Volume Claim
Создайте cloudru-csi-s3-pvc-dynamic.yaml и сохраните манифест:
apiVersion : v1kind : PersistentVolumeClaimmetadata :name : cloudru-csi-s3-pvc-dynamicnamespace : defaultspec :accessModes :- ReadWriteManyresources :requests :storage : 10GistorageClassName : "cloudru-s3-standard"Где:
spec.accessModes — режим доступа к тому. Необходимо обязательно указать ReadWriteMany.
storageClassName — название класса хранилищ.
Возможные значения:
cloudru-s3-standard — стандартный;
cloudru-s3-single — однозонный;
cloudru-s3-cold — холодный;
cloudru-s3-ice — ледяной.
Выполните команду:
kubectl create -f cloudru-csi-s3-pvc-dynamic.yamlУбедитесь, что PVC создан:
kubectl describe pvc cloudru-csi-s3-pvc-dynamicОтобразится подробная информация о созданном PVC.
Шаг 2. Создайте под с динамически подготовленным томом
Создайте cloudru-s3-pod-dynamic.yaml и сохраните манифест:
apiVersion : v1kind : Podmetadata :name : cloudru-s3-pod-dynamicspec :containers :- name : web-serverimage : nginxvolumeMounts :- mountPath : /pvname : s3-storagevolumes :- name : s3-storagepersistentVolumeClaim :claimName : cloudru-csi-s3-pvc-dynamicВыполните команду:
kubectl create -f cloudru-s3-pod-dynamic.yamlПроверьте статус пода:
kubectl get pod cloudru-s3-pod-dynamicРезультат:
NAME READY UP-TO-DATE AVAILABLE AGEcloudru-s3-pod-dynamic 1 /1 1 1 85s
Шаг 3. Проверьте работу с хранилищем
Проверьте в сервисе Object Storage, что бакет создан.
Чтобы узнать название бакета, выполните команду:
kubectl get pvc cloudru-csi-s3-pvc-dynamicРезультат:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGEcloudru-csi-s3-pvc-dynamic Bound pvc-ae5ec1db-8c20-4d0a-9a88-cac1cc433821 10Gi RWX cloudru-s3-standard <unset> 109sНазвание бакета — в столбце VOLUME.
Создайте файл в контейнере /pv/s3_file:
kubectl exec -ti cloudru-s3-pod-dynamic -- touch /pv/s3_fileПроверьте, что файл попал в бакет.
Шаг 4. Удалите ресурсы
Если вы завершили работу с примером, удалите ресурсы. Для этого выполните последовательно команды:
kubectl delete pod cloudru-s3-pod-dynamickubectl delete pvc cloudru-csi-s3-pvc-dynamic
Бакет удалится автоматически.
- Перед началом работы
- Шаг 1. Создайте Persistent Volume Claim
- Шаг 2. Создайте под с динамически подготовленным томом
- Шаг 3. Проверьте работу с хранилищем
- Шаг 4. Удалите ресурсы