Como instalar o Nextcloud no Kubernetes
Para instalar o Nextcloud no Kubernetes, recomendamos usar S3 para o back-end de armazenamento e MariaDB como solução de banco de dados. Com algumas alterações nas configurações, você consegue melhorar o desempenho.
Nextcloud e Kubernetes: Combinação de sucesso
A combinação de Nextcloud e Kubernetes com S3 para armazenamento é uma solução promissora tanto para uso privado quanto empresarial. O software de nuvem não comercial é adequado para trabalhar com servidores locais e hosts externos, ostentando uma excelente arquitetura de segurança quando comparado às diversas alternativas ao Nextcloud. Kubernetes é um sistema de gerenciamento de código aberto para aplicações em contêineres e pode ser usado tanto na computação em nuvem quanto localmente. O sistema é considerado flexível, altamente escalável e à prova de falhas. Leia este artigo até o final para descobrir como instalar o Nextcloud no Kubernetes.
Para instalar o Nextcloud com o Docker, consulte esse tutorial passo a passo do nosso Digital Guide. Também ensinamos você como instalar o Nextcloud no Ubuntu 22.04.
Pré-requisitos de sistema
Antes de iniciar a instalação do Nextcloud no Kubernetes, algumas condições devem ser atendidas. Você precisa ter espaço de armazenamento suficiente e criar um cluster Kubernetes. Isso pode ser feito em sua máquina local ou no armazenamento em nuvem, dependendo da capacidade disponível. Além disso, é preciso se assegurar de que o gerenciador de pacotes Helm esteja configurado para o Kubernetes. Quando tudo estiver pronto, você poderá prosseguir com o processo de instalação.
Passo a passo: Instalar Nextcloud no Kubernetes
Depois de preparar a base necessária, comece o processo de instalação do Nextcloud no Kubernetes. Resumimos os principais passos nas seções a seguir.
Configurar DNS
O primeiro passo é criar um A-Record para um subdomínio que seja capaz de apontar para o endereço IP desejado. Se estiver usando a solução local, seu endereço IP público é o destino correto. Caso contrário, insira o IP informado pelo seu serviço de nuvem. Esses passos podem apresentar pequenas variações, dependendo do provedor de DNS.
Adicionar e atualizar Helm
O Kubernetes é implementado usando o gerenciador de pacotes Helm, que precisa ser instalado no seu cliente. Além disso, certifique-se de ter uma conexão com o seu cluster Kubernetes. Em caso positivo, adicione o repositório do Helm e atualize-o com os seguintes comandos:
Criar values.yaml
Crie um gráfico Helm com o seguinte comando:
Em seguida, adicione no arquivo as especificações descritas abaixo.
Definir cronjobs
Primeiro, defina um limite de tempo para cronjobs. Em sistemas operacionais do tipo Unix-like, cronjobs são tarefas executadas automaticamente e em segundo plano durante intervalos definidos. No caso do Nextcloud no Kubernetes, essas são as tarefas de manutenção primárias. Neste exemplo, definimos o cronjob para rodar a cada cinco minutos. Para volumes de dados maiores, talvez seja aconselhável uma manutenção mais frequente. Use o seguinte código:
Ativar HPA
Em seguida, desative o Horizontal Pod Autoscaler (HPA), que redimensiona automaticamente o número de pods. Se você usa ReadWriteOnce no Nextcloud e prefere controlar o redimensionamento manualmente, desative o HPA e foque em um pod. Essa abordagem é mais conveniente se poucos usuários precisarem de acesso à solução. O código correspondente é:
Substituir tag image
Para assegurar que a versão atual do Helm seja usada, substitua a tag image. Para fazer isso, use o seguinte código:
A versão 28.0.2 ou mais recente será selecionada.
Selecionar banco de dados
Você tem três opções de banco de dados para escolher: MariaDB, PostgreSQL ou SQLite. Em nosso exemplo, usaremos o MariaDB. Configure o banco de dados seguindo os detalhes abaixo e desative os outros dois sistemas:
Monitorar métricas
Para realizar o monitoramento com Prometheus ou Grafana, insira o código a seguir. Este passo é opcional.
Instalação de clusters Kubernetes totalmente automatizada, visibilidade máxima e controle de clusters K8s.
Habilitar arquivos de configuração próprios
Por padrão, o Nextcloud também usa um arquivo chamado “config.php” para as configurações feitas no Kubernetes. Para simplificar ou deixar o processo mais flexível, insira os seus próprios arquivos de configuração usando o código a seguir:
Substitua o placeholder “exemplo.com” pelo seu próprio domínio.
Configurar Redis
Para melhorar o armazenamento em cache com o Redis e aprimorar o desempenho geral, adicione um arquivo de configuração personalizado. Por padrão, o Helm Redis é instalado sem proteção com senha, mas é recomendável incluir essa camada extra de segurança. Use o código a seguir para configurar o Redis com senha e integre-o ao Nextcloud:
Configurar back-end de armazenamento
O último arquivo de configuração é inserido para o back-end de armazenamento S3. Ele é definido no código a seguir:
Você pode armazenar qualquer quantidade de dados estáticos por preços acessíveis.
Desativar configuração do Redis
Como você substituiu a configuração padrão do Redis na seção acima, ela deverá ser desativada para evitar erros. Para fazer isso, use este código:
Definir host, administrador e senha
Insira o host, o administrador e a senha para usar o Nextcloud no Kubernetes. Use este código:
Substitua os placeholders pelos seus próprios dados.
Configurar notificações por e-mail
Opcionalmente, você pode configurar um serviço SMTP (Simple Mail Transfer Protocol) para receber notificações do Nextcloud:
Configurar unidade de persistência
A configuração de persistência a seguir é destinada aos dados que o Nextcloud armazena no sistema correspondente. Ela não afeta os seus dados de usuário, que são armazenados no S3 em intervalos definidos:
Proteger Redis com senha
É recomendável proteger o Redis com uma senha para impedir a ocorrência de erros durante a autenticação. Para isso, use o código a seguir, substituindo o placeholder pela sua senha:
Limitar replicações
Como você já desativou o HPA, é preciso limitar o número possível de replicações para 1:
Instalar Nextcloud no Kubernetes
Para finalizar, instale o Nextcloud no Kubernetes e adicione o MariaDB e o Redis: