Olá, No projeto do curso o container mysql nao foi clusterizado no K8s, poderia esclarecer o porque ? E se seria possivel também fazer a replicação como é feito na aplicação ?
Obrigado
Olá, No projeto do curso o container mysql nao foi clusterizado no K8s, poderia esclarecer o porque ? E se seria possivel também fazer a replicação como é feito na aplicação ?
Obrigado
Olá Osnir, tudo bem? O que acontece é que os instrutores tentam deixar o curso o mais próximo possível de um cenário real, e num cenário real sempre usando um serviço dedicado apenas para banco de dados, para deixarmos toda nossa aplicação e conjunto de ferramentas expansível e independente, num cenário real iriamos usar o MySQL num serviço externo como o Amazon RDS, por isso que o instrutor deixou o container do MySQL executando diretamente em um container Docker. Sobre a replicação, você ainda acha necessário? Se sim, responde aqui que podemos ver qual a melhor forma de implantar isso, porque como é o banco de dados e vários container do Kubernetes vão utilizá-lo, então fica mais complicado a implementação disso!
Entendi Jonilson,
Acredito que poderíamos colocar o pod do container mysql dentro de um objeto statefulset com configuração de volume e perfil de acesso a este volume e criar um servico de loadbalancer e depois realizarmos o scale dos pods , certo ?
Sim Osnir, isso poderia ser feito, porém como fica a questão do banco de dados em si? É esse o ponto mais difícil de resolver, porque se colocarmos mais de um pod com o banco de dados, então no caso vamos ter mais de uma banco de dados, ou seja mais de uma estrutura de tabelas e registros idêntica só que com registros diferentes, isso pode ser uma problema, porque podemos ter dados duplicados, e isso fere uma das regras de normalização de banco de dados. Por isso que geralmente o banco de dados é um único serviço pra manter os dados íntegros e sem redundâncias. Então nesse caso teríamos que usarmos alguma técnica para fazer a cópia desses dados entre os diferentes pods MySQL, para conseguirmos montar um cluster de banco de dados que tem um ideia de funcionamento diferente de cluster para uma aplicação web por exemplo, um cluster de banco de dados tem que seguir essa ideia de cópia de dados de um servidor para outro, ou seja de pod para outro. Porém nunca tentei implementar uma estrutura dessas, até porque na prática é mais vantajoso usar um serviço de banco de dados como mencionei no post anterior.