Подключить файловое хранилище к кластеру Managed Kubernetes в одном пуле
Если с помощью файлового хранилища нужно увеличить дисковое пространство, мы рекомендуем создавать хранилище в одном пуле с кластером Managed Kubernetes. Если файловое хранилище и кластер Managed Kubernetes находятся в одном пуле, то для подключения хранилища нужно его примонтировать.
Если вы планируете использовать файловое хранилище для хранения бэкапов, для повышения отказоустойчивости мы рекомендуем создавать хранилище и кластер Managed Kubernetes в пулах из разных зон доступности или регионов. Подробнее в инструкции Подключить файловое хранилище к кластеру Managed Kubernetes в другом пуле.
1. Создать файловое хранилище
Панель управления
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 приватной подсети, выберите уровень доступа.
После создания хранилища можно изменить правила доступа, для этого можно настроить новые правила доступа.
-
Настройте правила доступа к файловому хранилищу:
- доступно всем — хранилище будет доступно для любого IP-адреса приватной подсети, в которой оно создается;
- доступ ограничен — хранилище будет доступно только для определенных IP-адресов или приватных подсетей. Если создать файловое хранилище без правил, доступ будет ограничен для всех IP-адресов.
-
Если вы выбрали опцию Доступ ограничен, нажмите Добавить правило.
-
Введите IP-адрес или CIDR приватной подсети.
После создания хранилища можно изменить правила доступа, для этого можно настроить новые правила доступа.
Используйте инструкцию Создать файловое хранилище в документации Terraform.
2. Примонтировать файловое хранилище к кластеру Managed Kubernetes
Процесс монтирования зависит от протокола файлового хранилища: NFSv4 или CIFS SMBv3.
NFSv4
CIFS SMBv3
1. Создать PersistentVolume
-
Создайте 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.
-
Примените манифест:
kubectl apply -f <persistent_volume.yaml>
Укажите
<persistent_volume.yaml>
— имя yaml-файла с манифестом для создания PersistentVolume. -
Убедитесь, что создан объект PersistentVolume:
kubectl get pv
2. Создать PersistentVolumeClaim
-
Создайте 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 ТБ. -
Примените манифест:
kubectl apply -f <persistent_volume_claim.yaml>
Укажите
<persistent_volume_claim.yaml>
— имя yaml-файла с манифестом для создания PersistentVolumeClaim. -
Убедитесь, что создан объект PersistentVolumeClaim:
kubectl get pvc
3. Добавить хранилище в контейнер
-
Создайте 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: <mount_path>Укажите
<mount_path>
— путь до папки внутри контейнера, в которую будет примонтировано файловое хранилище. -
Примените манифест:
kubectl apply -f <deployment.yaml>