Перейти к основному содержимому
Подключить файловое хранилище к кластеру Managed Kubernetes в одном пуле
Последнее изменение:

Подключить файловое хранилище к кластеру Managed Kubernetes в одном пуле

Если с помощью файлового хранилища нужно увеличить дисковое пространство, мы рекомендуем создавать хранилище в одном пуле с кластером Managed Kubernetes. Если файловое хранилище и кластер Managed Kubernetes находятся в одном пуле, то для подключения хранилища нужно его примонтировать.

  1. Создайте файловое хранилище.
  2. Примонтируйте файловое хранилище к кластеру Managed Kubernetes.

Если вы планируете использовать файловое хранилище для хранения бэкапов, для повышения отказоустойчивости мы рекомендуем создавать хранилище и кластер Managed Kubernetes в пулах из разных зон доступности или регионов. Подробнее в инструкции Подключить файловое хранилище к кластеру Managed Kubernetes в другом пуле.

Создать файловое хранилище

  1. В панели управления перейдите в раздел Облачная платформаФайловое хранилище.

  2. Нажмите Создать хранилище.

  3. Введите новое имя хранилища или оставьте имя, которое создано автоматически.

  4. Выберите пул, в котором расположен кластер Managed Kubernetes. В этом пуле будет создано хранилище.

  5. Выберите подсеть облачной приватной сети. Мы рекомендуем выбирать подсеть, в которой расположены ноды кластера Managed Kubernetes, — так будет автоматически настроена сетевая связность между нодами и хранилищем.

  6. Введите приватный IP-адрес хранилища или оставьте первый доступный адрес из подсети, который назначается по умолчанию. После создания хранилища IP-адрес нельзя будет изменить.

  7. Выберите тип файлового хранилища. Хранилища отличаются скоростью чтения/записи и значениями пропускной способности:

    • HDD Базовое;

    • SSD Универсальное;

    • SSD Быстрое.

      После создания тип хранилища нельзя будет изменить.

  8. Укажите размер хранилища: от 50 ГБ до 50 ТБ. После создания можно будет увеличить файловое хранилище, но нельзя уменьшить.

  9. Выберите протокол:

    • NFSv4 — для подключения хранилища к серверам с операционной системой Linux и другими Unix-системами;

    • CIFS SMBv3 — для подключения хранилища к серверам с операционной системой Windows.

      После создания протокол нельзя будет изменить.

  10. Проверьте стоимость файлового хранилища.

  11. Нажмите Создать.

Примонтировать файловое хранилище к кластеру Managed Kubernetes

Процесс монтирования зависит от протокола файлового хранилища: NFSv4 или CIFS SMBv3.

  1. Создайте PersistentVolume.
  2. Создайте PersistentVolumeClaim.
  3. Добавьте файловое хранилище в контейнер.

1. Создать PersistentVolume

  1. Подключитесь к кластеру Managed Kubernetes.

  2. Создайте yaml-файл filestorage_persistent_volume.yaml с манифестом для PersistentVolume:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
    name: pv_name
    spec:
    storageClassName: storageclass_name
    capacity:
    storage: <storage_size>
    accessModes:
    - ReadWriteMany
    nfs:
    path: /shares/share-<mountpoint_uuid>
    server: <filestorage_ip_address>

    Укажите:

    • <storage_size> — размер файлового хранилища в ГБ (размер PersistentVolume), например, 100 Gi. Ограничение — от 50 ГБ до 50 ТБ;
    • <mountpoint_uuid> — ID точки монтирования. Можно посмотреть в панели управления в разделе Облачная платформаФайловое хранилище → страница хранилища → блок Подключение → вкладка GNU/Linux;
    • <filestorage_ip_address> — IP-адрес файлового хранилища. Можно посмотреть в панели управления в разделе Облачная платформаФайловое хранилище → страница хранилища → вкладка Настройки → поле IP.
  3. Создайте PersistentVolume — примените манифест:

    kubectl apply -f filestorage_persistent_volume.yaml
  4. Проверьте, что PersistentVolume создан:

    kubectl get pv

2. Создать PersistentVolumeClaim

  1. Создайте yaml-файл filestorage_persistent_volume_claim.yaml с манифестом для PersistentVolumeClaim:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: pvc_name
    spec:
    storageClassName: storageclass_name
    accessModes:
    - ReadWriteMany
    resources:
    requests:
    storage: <storage_size>

    Укажите <storage_size> — размер файлового хранилища в ГБ (размер PersistentVolume), например, 100 Gi. Ограничение — от 50 ГБ до 50 ТБ.

  2. Создайте PersistentVolumeClaim — примените манифест:

    kubectl apply -f filestorage_persistent_volume_claim.yaml
  3. Проверьте, что PersistentVolumeClaim создан:

    kubectl get pvc

3. Добавить хранилище в контейнер

  1. Создайте yaml-файл deployment.yaml с манифестом для Deployment:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: filestorage_deployment_name
    labels:
    project: filestorage_deployment_name
    spec:
    replicas: 2
    selector:
    matchLabels:
    project: filestorage_project_name
    template:
    metadata:
    labels:
    project: filestorage_project_name
    spec:
    volumes:
    - name: volume_name
    persistentVolumeClaim:
    claimName: pvc_name
    containers:
    - name: container-nginx
    image: nginx:stable-alpine
    ports:
    - containerPort: 80
    name: "http-server"
    volumeMounts:
    - name: volume_name
    mountPath: <mouth_path>

    Укажите <mouth_path> — путь до папки внутри контейнера, в которую будет примонтировано файловое хранилище.

  2. Создайте Deployment — примените манифест:

    kubectl apply -f deployment.yaml