Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Escalonando os Pod's X Volumes

Vamos lá ....minha duvida é :

se eu escalar os Pod's do banco de dados para sei la...5 pods....então cada pod salvará o que foi escrito nele na sua pasta de container /var/lib/mysql e depois isso é espelhado/copiado para o volume ?

Ou

O Pod estará salvando não no container diretamente, mais diretamente no Volume (que esta no host, num lugar unico)

Tenho essa dúvida , pois se for o primeiro caso, temos um problema de bases diferentes que poderão se sobreescreverem umas as outras, cada uma com informações diferentes das outras. Digo, serão nesse caso 5 bases diferentes cada uma indo para o mesmo volume.

Como fica a dinâmica nesse caso ?

1 resposta

Olá Leonardo, tudo bem? Nunca tentei realizar esse procedimento de compartilhar um volume entre os Pods que estão executando o MySQL, e assim salvam os dados no mesmo volume, porém de ante mão acho que isso deve gerar um conflito, já que serão 5 Pods salvando os arquivos, e pode ser que dois ou mais tentem fazer a alteração no mesmo momento, fora que os dados podem ficar redundantes, enquanto um salvo um dado o outro deseja salvar o mesmo dado e isso pode gerar muitos erros e como são 5 Pods acho que são milhares de requisições para serem processados e isso pode tornar o desempenho muito ruim.

A melhor forma é realizar o clone dos dados dos outros Pods, e sempre tento o Pod Master para gerenciar os outros Pods escravos. Assim, caso algum tenha algum problema podemos subir outro e realizar o clone dos dados, assim cada um tem os dados para acesso direto e sem conflitos. Mas você pode pensar que é redundância ter os dados em 5 Pods, porém nesse caso serão os mesmos dados e eles estarão apenas replicados, nesse cenário deve funcionar dessa forma, você pode ler mais em: Run a Replicated Stateful Application. Isso é algo bem complexo e que deve ser muito bem configurado, e acho que vale a pena pensar se realmente é a melhor forma para a sua aplicação, talvez seja melhor, mais produtivo e rápido usar um banco de dados único e externo, em algum serviço que já se preocupe com a redundância e com manter esses dados seguros, como é o caso do RDS que é um serviço de banco de dados da Amazon.

Espero ter ajudado!