Инструкция из личного кабинета Это руководство по сервису из личного кабинета 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-джоба автоматически.