Skip to content

Инструкция из личного кабинета Это руководство по сервису из личного кабинета Nubes (ЛК). Текст приведён без изменений, «как есть».

Инструкция по развертыванию Nextcloud через платформу

1. Общая информация

Nextcloud — платформа для хранения и совместной работы с файлами. Разворачивается в K8s через Helm-чарт nextcloud/nextcloud.

Сервис не самодостаточен — для создания необходимы заранее развёрнутые в той же ресурсной платформе:

  • PostgreSQL (k8s) — база данных Nextcloud. У СУБД должен быть выставлен параметр sslRequired: false.
  • Redis (k8s) — используется как memcache/locking backend.

Резервное копирование выполняется через Velero (бэкапятся под и PVC с данными), а не штатным S3-бэкапом СУБД.

Доступные операции с сервисом

  • create — создание сервиса
  • delete — удаление сервиса
  • suspend — остановка сервиса (масштабирование реплик в 0)
  • resume — запуск сервиса
  • restart — перезапуск (kubectl rollout restart)
  • modify — изменение настроек сервиса
  • reconcile — служебная операция синхронизации версии (запускается платформой автоматически)
  • create_backup — создание резервной копии вручную (через Velero)
  • recovery — восстановление из резервной копии в новый инстанс

Примечание: операций работы с пользователями Nextcloud (create_user/modify_user/delete_user) на уровне платформы нет — пользователи приложения администрируются внутри самого Nextcloud.


2. Параметры создания сервиса

Платформа для развертывания

Ресурсная платформа (resourceRealm), в которой будет развёрнут сервис. PostgreSQL и Redis, указанные ниже, обязаны находиться в той же ресурсной платформе.

СУБД PostgreSQL (psqlUid)

UID инстанса PostgreSQL (k8s), в котором будет создана база и пользователь nextcloud.

  • У выбранной СУБД должна отсутствовать база nextcloud и пользователь nextcloud.
  • У СУБД обязан быть выключен sslRequired (false).

СУБД Redis (redisUid)

UID инстанса Redis (k8s), который будет использоваться как memcache/locking backend.

Количество реплик

Количество реплик Nextcloud (clusterConfiguration.replicas).

Квота памяти пода (MB)

Объём памяти для пода Nextcloud в мегабайтах. Пример: 2048

Квота CPU пода (mCPU)

CPU-квота для пода Nextcloud в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

Размер диска для данных (GB)

Объём диска под данные Nextcloud (/var/www/html/data) в гигабайтах. Пример: 20

Домен

Домен, на котором будет доступен Nextcloud (accessConfiguration.domain).

  • Если указано полное доменное имя (содержит точку, например cloud.company.ru) — домен считается клиентским. Перед созданием клиент обязан сам настроить DNS-запись, указывающую на адрес Ingress платформы, иначе создание завершится ошибкой.
  • Если указано короткое имя (без точки, например mycloud) — платформа сама создаёт DNS-запись вида <domain>.nextcloudk8s и настраивает сертификат.

Версия

Версия приложения Nextcloud (appConfiguration.version, поле appVersion Helm-чарта). По ней автоматически подбирается последняя подходящая версия Helm-чарта.

Примечание: список поддерживаемых версий и допустимые шаги обновления заданы в pipelines/stages/functions/helm.groovy (см. раздел 13).

Document Server

Параметр appConfiguration.documentServer. Если указать collabora — в кластер дополнительно разворачивается Collabora Online (совместное редактирование офисных документов), доступный по пути /collabora на том же домене. Оставьте пустым, если Document Server не нужен.

Уровень логирования

Параметр appConfiguration.logLevel. Одно из значений: DEBUG, INFO, WARN, ERROR, FATAL, либо NONE — чтобы не переопределять логирование Nextcloud.


3. Параметры модификации сервиса

Изменению подлежат ресурсы, версия и часть appConfiguration. Параметры psqlUid/redisUid менять после создания не рекомендуется.

Количество реплик

См. раздел 2.

Квота памяти пода (MB) / Квота CPU пода (mCPU) / Размер диска (GB)

См. раздел 2.

Примечание: уменьшить уже выделенный размер диска нельзя.

Версия

Обновление версии разрешено только на один патч либо на одну минорную версию вперёд (с patch=0). Прыжок сразу через несколько минорных версий или через несколько мажорных версий запрещён — обновляться нужно последовательно.

Примечание: перед обновлением на новую minor/major-версию необходимо сначала выполнить modify на текущей версии, обновившись до последнего релиза этой версии (иначе операция завершится ошибкой с описанием, до какой версии нужно обновиться сначала).

Document Server / Уровень логирования

См. раздел 2.


4. Параметры удаления сервиса

Специальных параметров нет — удаление сносит namespace целиком.

Примечание: резервные копии, созданные через create_backup, хранятся в Velero отдельно от инстанса и не удаляются вместе с сервисом — операции delete_backup для Nextcloud нет, копии нужно вычищать на стороне Velero отдельно.


5. Параметры создания бэкапа

Специальных пользовательских параметров нет — имя бэкапа генерируется автоматически в формате <дата>-<версия>-<namespace>.

Примечание: создать бэкап можно только если сервис предварительно приостановлен (suspend). Velero, в который создаётся бэкап, должен быть развёрнут в той же ресурсной платформе, что и Nextcloud, и не может быть сменён на другой Velero-инстанс в рамках одного сервиса.

Бэкапится под с данными вместе с PVC/PV (файлы), метаданные и БД PostgreSQL бэкапом не затрагиваются — версия схемы БД фиксируется отдельно (см. раздел 6).


6. Параметры восстановления из бэкапа (recovery)

В отличие от СУБД-сервисов, recovery у Nextcloud не восстанавливает данные в текущий инстанс, а создаёт новый инстанс сервиса (аналог create), в который переносятся файлы из указанной резервной копии.

Точка восстановления (recoveryPoint)

Имя резервной копии Velero, из которой будет выполнено восстановление.

Домен нового инстанса

Обязан отличаться от домена исходного (текущего) инстанса — восстановление на тот же домен не поддерживается.

СУБД PostgreSQL нового инстанса

Если версия Nextcloud в бэкапе отличается от текущей версии инстанса, для нового инстанса обязательно нужно указать другую СУБД PostgreSQL (нельзя восстанавливать бэкап со старой схемой БД поверх БД с более новой схемой).


7. Выходные параметры

После успешного создания сервиса платформа возвращает:

connectionUrl

Адрес для входа в Nextcloud: https://<домен>.

namespace

Namespace в K8s-кластере, в котором развёрнут сервис.

Учётные данные (Vault)

В Vault сохраняется пароль администратора (adminPass) под логином admin.


8. Пример подключения

Откройте connectionUrl в браузере и авторизуйтесь:

  • Логин: admin
  • Пароль: значение adminPass из блока «Учётные данные» в Vault

9. Дополнительная информация

Зависимости

Nextcloud нельзя создать без уже существующих в том же resourceRealm сервисов PostgreSQL (k8s, sslRequired: false) и Redis (k8s). При delete зависимые СУБД и Redis не трогаются — удаляется только сам Nextcloud.

suspend/resume

При suspend количество реплик Nextcloud, Collabora и exporter'а метрик принудительно выставляется в 0 через helm upgrade (реальное масштабирование, а не просто пауза cron). При resume реплики возвращаются к значению из clusterConfiguration.replicas.

Collabora

Собирается из отдельного image.repository: nexus-sa.tst.nubes.ru/collabora/code и включается только при appConfiguration.documentServer == 'collabora'. Доступен на том же домене и том же TLS-сертификате, что и сам Nextcloud, по пути /collabora.

Бэкап/восстановление через Velero

Бэкап/восстановление файлов идёт через Velero с селектором backup=<serviceName>-velero-backup и включает под, PVC и PV — то есть непосредственно файлы /var/www/html/data. Восстановление БД в новый инстанс выполняется штатным механизмом create с параметром instanceUidFrom, который проставляет recovery-джоба автоматически.