Подключить файловое хранилище к кластеру Managed Kubernetes в другом пуле
Если вы планируете использовать файловое хранилище для хранения бэкапов, для повышения отказоустойчивости мы рекомендуем создавать хранилище и кластер Managed Kubernetes в пулах из разных зон доступности или регионов. Если файловое хранилище и кластер Managed Kubernetes находятся в разных пулах, то для подключения хранилища нужно настроить приватную сетевую связность на уровне L3 через глобальный роутер.
-
Подключите к глобальному роутеру сеть и подсеть для кластера Managed Kubernetes.
-
Подключите к глобальному роутеру сеть и подсеть для файлового хранилища.
-
Пропишите маршруты на ноде кластера Managed Kubernetes. Добавить маршруты можно только через техническую поддержку.
-
Примонтируйте файловое хранилище к кластеру Managed Kubernetes.
Посмотрите пример подключения файлового хранилища к кластеру Managed Kubernetes в другом пуле.
Если с помощью файлового хранилища нужно увеличить дисковое пространство, мы рекомендуем создавать хранилище в одном пуле с кластером Managed Kubernetes. Подробнее в инструкции Подключить файловое хранилище к кластеру Managed Kubernetes в одном пуле.
Пример подключения файлового хранилища к кластеру Managed Kubernetes
Например, нужно подключить файловое хранилище в пуле ru-2 к кластеру Managed Kubernetes в пуле ru-8.
-
Создайте глобальный роутер.
-
Подключите к глобальному роутеру две приватные сети —
192.168.0.0/29с шлюзом192.168.0.1для пула ru-8 и172.16.0.0/29с шлюзом172.16.0.1для пула ru-2. -
Назначьте адрес из подсети
192.168.0.0/29на ноду кластера Managed Kubernetes, например192.168.0.2. -
Пропишите маршрут на ноде кластера Managed Kubernetes в пуле ru-8 — в подсеть
172.16.0.0/29через шлюз192.168.0.1. -
Создайте файловое хранилище в подсети
172.16.0.0/29. -
Примонтируйте файловое хранилище к кластеру Managed Kubernetes.

1. Создать глобальный роутер
- В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер.
- Нажмите Создать роутер. Для каждого аккаунта установлен лимит в пять глобальных роутеров.
- Введите имя роутера.
- Нажмите Создать.
- Если роутер создался со статусом
ERRORили завис в одном из статусов, создайте тикет.
2. Подключить к роутеру сеть и подсеть для кластера Managed Kubernetes
Нужно создать сеть и подсеть глобального роутера до того проекта и пула облачной платформы, в которых создан кластер Managed Kubernetes.
Вы можете подключить к роутеру новую сеть или существующую сеть, если она еще не подключена к любому из глобальных роутеров аккаунта.
Подключить новую сеть
Подключить существующую сеть
-
В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер.
-
Откройте страницу роутера → вкладка Сети.
-
Нажмите Создать сеть.
-
Введите имя сети. Оно будет использоваться только в панели управления.
-
Выберите услугу Облачная платформа.
-
Выберите пул, в котором создан кластер Managed Kubernetes.
-
Выберите проект, в котором создан кластер Managed Kubernetes.
-
Введите имя подсети. Оно будет использоваться только в панели управления.
-
Введите CIDR — IP-адрес и маску подсети. Подсеть должна соответствовать условиям:
- принадлежать диапазону приватных адресов по RFC 1918:
10.0.0.0/8,172.16.0.0/12или192.168.0.0/16; - иметь размер не меньше /29, так как три адреса будут заняты сетевым оборудованием Selectel;
- не пересекаться с другими подсетями, добавленными на этот роутер, — в подсетях одного роутера не должно быть одинаковых IP-адресов;
- если в сеть глобального роутера будет включен кластер Managed Kubernetes на облачных серверах, подсеть не должна пересекаться с диапазонами
10.10.0.0/16,10.96.0.0/12,10.250.0.0/16и10.251.0.0/24. Если в сеть будет включен кластер на выделенных серверах — с диапазонами10.10.0.0/16,10.222.0.0/16,10.250.0.0/16,10.251.0.0/24и172.250.0.0/14. Эти подсети участвуют во внутренней адресации Managed Kubernetes, их использование может привести к конфликтам в сети глобального роутера.
- принадлежать диапазону приватных адресов по RFC 1918:
-
Введите IP шлюза или оставьте первый адрес из подсети, который назначается по умолчанию. Не назначайте этот адрес на свои устройства, чтобы не нарушить работу сети.
-
Введите служебные IP или оставьте последние адреса из подсети, которые назначаются по умолчанию. Не назначайте эти адреса на свои устройства, чтобы не нарушить работу сети.
-
Нажмите Создать сеть.
-
Опционально: проверьте топологию сети на глобальном роутере. В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер. Откройте страницу нужного роутера и нажмите Карта сети.
3. Подключить к роутеру сеть и подсеть для файлового хранилища
Нужно создать сеть и подсеть глобального роутера до того проекта и пула облачной платформы, в котором в дальнейшем будет создано файловое хранилище.
Вы можете подключить к роутеру новую сеть или существующую сеть, если она еще не подключена к любому из глобальных роутеров аккаунта.
Подключить новую сеть
Подключить существующую сеть
-
В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер.
-
Откройте страницу роутера → вкладка Сети.
-
Нажмите Создать сеть.
-
Введите имя сети. Оно будет использоваться только в панели управления.
-
Выберите услугу Облачная платформа.
-
Выберите пул, в котором будет создано файловое хранилище.
-
Выберите проект, в котором будет создано файловое хранилище.
-
Введите имя подсети. Оно будет использоваться только в панели управления.
-
Введите CIDR — IP-адрес и маску подсети. Подсеть должна соответствовать условиям:
- принадлежать диапазону приватных адресов по RFC 1918:
10.0.0.0/8,172.16.0.0/12или192.168.0.0/16; - иметь размер не меньше /29, так как три адреса будут заняты сетевым оборудованием Selectel;
- не пересекаться с другими подсетями, добавленными на этот роутер, — в подсетях одного роутера не должно быть одинаковых IP-адресов;
- если в сеть глобального роутера будет включен кластер Managed Kubernetes на облачных серверах, подсеть не должна пересекаться с диапазонами
10.10.0.0/16,10.96.0.0/12,10.250.0.0/16и10.251.0.0/24. Если в сеть будет включен кластер на выделенных серверах — с диапазонами10.10.0.0/16,10.222.0.0/16,10.250.0.0/16,10.251.0.0/24и172.250.0.0/14. Эти подсети участвуют во внутренней адресации Managed Kubernetes, их использование может привести к конфликтам в сети глобального роутера.
- принадлежать диапазону приватных адресов по RFC 1918:
-
Введите IP шлюза или оставьте первый адрес из подсети, который назначается по умолчанию. Не назначайте этот адрес на свои устройства, чтобы не нарушить работу сети.
-
Введите служебные IP или оставьте последние адреса из подсети, которые назначаются по умолчанию. Не назначайте эти адреса на свои устройства, чтобы не нарушить работу сети.
-
Нажмите Создать сеть.
-
Опционально: проверьте топологию сети на глобальном роутере. В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер. Откройте страницу роутера и нажмите Карта сети.
4. Назначить IP-адрес на ноде кластера Managed Kubernetes
Настройте локальный порт на ноде кластера Managed Kubernetes, которая включается в сеть глобального роутера. На порт назначьте IP-адрес из подсети, которую вы подключили к глобальному роутеру для кластера Managed Kubernetes.
-
Добавьте ноду кластера Managed Kubernetes в созданную подсеть глобального роутера. Если у вас еще нет кластера Managed Kubernetes, создайте его. При создании в качестве подсети выберите подсеть глобального роутера.
-
Примените изменения в зависимости от параметра Применять изменения в блоке Настройка портов. Значение параметра можно посмотреть в панели управления: в верхнем меню Продукты → Облачные серверы → страница облачного сервера → вкладка Порты:
- При перезагрузке сервера — программно перезагрузите ноду или вручную внесите изменения в файле конфигурации сети на ноде;
- Вручную в файле конфигурации сети на сервере — вручную внесите изменения в файле конфигурации сети на ноде.
5. Прописать маршруты на ноде кластера Managed Kubernetes
На каждой ноде кластера необходимо прописать статические маршруты до всех подсетей, подключенных к глобальному роутеру, с которыми нужна связность. Для этого настройте статические маршруты в приватной подсети, в которой находится кластер. В подсети необходимо настроить маршруты до всех остальных подсетей глобального роутера, с которыми будет идти обмен трафиком.
6. Создать файловое хранилище
Панель управления
OpenStack CLI
Terraform
-
В панели управления в верхнем меню нажмите Продукты и выберите Файловое хранилище.
-
Нажмите Создать хранилище.
-
Введите имя хранилища или оставьте имя, которое создано автоматически.
-
Выберите локацию, в которой будет создано хранилище.
Если с помощью файлового хранилища нужно увеличить дисковое пространство, выберите локацию, в которой расположен облачный сервер или кластер Managed Kubernetes.
Если вы планируете использовать хранилище для хранения бэкапов, мы рекомендуем выбрать локацию, которая отличается от локации основной инфраструктуры, для повышения отказоустойчивости.
-
Заполните блоки:
-
Проверьте цену файлового хранилища.
-
Нажмите Создать.
Подсеть
-
Выберите приватную подсеть, в которой будет находиться хранилище. Тип подсети зависит от того, к чему нужно подключить хранилище:
- облачная приватная подсеть — хранилище будет доступно для облачных серверов и кластеров Managed Kubernetes только в том пуле, который вы выбрали при создании хранилища. Для подключения хранилища нужно будет только примонтировать его;
- подсеть глобального роутера — хранилище будет доступно для выделенных серверов, а также облачных серверов и кластеров Managed Kubernetes, которые находятся в других пулах. Для подключения хранилища нужно настроить сетевую связность между сервером или кластером и хранилищем через глобальный роутер. Посмотрите примеры настройки сетевой связности в инструкциях раздела Подключить файловое хранилище.
После создания хранилища подсеть нельзя будет изменить.
-
Введите приватный IP-адрес хранилища или оставьте первый доступный адрес из подсети, который назначается по умолчанию. После создания хранилища IP-адрес нельзя будет изменить.
Настройки
-
Выберите тип файлового хранилища:
- HDD Базовое,
- SSD Универсальное,
- SSD Быстрое.
После создания тип хранилища нельзя изменить.
-
Укажите размер хранилища: от 50 ГБ до 50 ТБ. После создания можно увеличить файловое хранилище, но нельзя уменьшить.
-
Выберите протокол:
- NFSv4 — для подключения хранилища к серверам с ОС на базе Linux и другими Unix-системами;
- CIFS SMBv3 — для подключения хранилища к серверам с ОС Windows.
После создания хранилища протокол нельзя изменить.
Правила доступа
NFSv4
CIFS SMBv3
-
Настройте правила доступа к файловому хранилищу:
- доступно всем — хранилище будет доступно для любого IP-адреса приватной подсети, в которой оно создается;
- доступ ограничен — хранилище будет доступно только для определенных IP-адресов или приватных подсетей. Если создать файловое хранилище без правил, доступ будет ограничен для всех IP-адресов.
-
Если вы выбрали опцию Доступ ограничен, нажмите Добавить правило.
-
Введите IP-адрес или CIDR приватной подсети, выберите уровень доступа.
После создания хранилища вы можете настроить новые правила доступа.
7. Примонтировать файловое хранилище к кластеру Managed Kubernetes
Процесс монтирования зависит от протокола файлового хранилища: NFSv4 или CIFS SMBv3.
NFSv4
CIFS SMBv3
1. Создать PersistentVolume
-
Создайте yaml-файл с манифестом для объекта PersistentVolume:
apiVersion: v1kind: PersistentVolumemetadata:name: pv_namespec:storageClassName: storageclass_namecapacity:storage: <storage_size>accessModes:- ReadWriteManynfs: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.
-
Примените манифест:
kubectl apply -f <persistent_volume.yaml>Укажите
<persistent_volume.yaml>— имя yaml-файла с манифестом для создания PersistentVolume. -
Убедитесь, что создан объект PersistentVolume:
kubectl get pv
2. Создать PersistentVolumeClaim
-
Создайте yaml-файл с манифестом для объекта PersistentVolumeClaim:
apiVersion: v1kind: PersistentVolumeClaimmetadata:name: pvc_namespec:storageClassName: storageclass_nameaccessModes:- ReadWriteManyresources:requests:storage: <storage_size>Укажите
<storage_size>— размер PersistentVolume (файлового хранилища) в ГБ, например100 Gi. Ограничение — от 50 ГБ до 50 ТБ. -
Примените манифест:
kubectl apply -f <persistent_volume_claim.yaml>Укажите
<persistent_volume_claim.yaml>— имя yaml-файла с манифестом для создания PersistentVolumeClaim. -
Убедитесь, что создан объект PersistentVolumeClaim:
kubectl get pvc
3. Добавить хранилище в контейнер
-
Создайте yaml-файл с манифестом для объекта Deployment:
apiVersion: apps/v1kind: Deploymentmetadata:name: filestorage_deployment_namelabels:project: filestorage_deployment_namespec:replicas: 2selector:matchLabels:project: filestorage_project_nametemplate:metadata:labels:project: filestorage_project_namespec:volumes:- name: volume_namepersistentVolumeClaim:claimName: pvc_namecontainers:- name: container-nginximage: nginx:stable-alpineports:- containerPort: 80name: "http-server"volumeMounts:- name: volume_namemountPath: <mount_path>Укажите
<mount_path>— путь до папки внутри контейнера, в которую будет примонтировано файловое хранилище. -
Примените манифест:
kubectl apply -f <deployment.yaml>Укажите
<deployment.yaml>— имя yaml-файла с манифестом для создания Deployment.