Azure aks cluster e docker – como armazenar dados persistentes

Azure aks cluster e docker – como armazenar dados persistentes

Eu tenho um aplicativo que é executado como um serviço no cluster Azure Aks (kubernetes). Este aplicativo extrai dados de um banco de dados e os coloca em um arquivo.

Pelo que entendi, primeiro preciso criar uma imagem do Docker e enviá-la para o registro do Azure Aks. Feito isso, preciso criar um pod e executar este aplicativo como um serviço.

A pergunta que tenho é -

a) Qual opção do Azure ou docker eu preciso usar para armazenar dados para que eles não sejam excluídos (removidos) se o pod falhar, for excluído ou reprogramado em outro nó e os dados permanecerem disponíveis em um arquivo depois que o arquivo for criado.

b) Pesquisando na internet, parece que posso usar o disco persistente do Azure ou o armazenamento de arquivos criando-o estaticamente ou dinamicamente usando o comando kubectl. No entanto, a parte que não entendo é: depois de criar o armazenamento persistente usando kubectl apply -f, como faço para usar o armazenamento em disco do Azure?

Preciso modificar o dockerfile e especificar um caminho de montagem (volume?) E também especificar o caminho de montagem no aplicativo (por exemplo,/mnt/app-data) onde o aplicativo pode gravar dados no arquivo.

Embora possa haver um mecanismo padrão para armazenar os dados no cluster aks, sou um pouco novo nisso e estou ansioso por conselhos de especialistas sobre como criar e usar o armazenamento no Azure (cluster aks para ser mais preciso) para um aplicativo gravar dados nele.

Responder1

A persistência de dados em Kubernetes (independentemente de serem AKS ou outra implementação) exigirá que você considere o uso de volumes persistentes. Este é um conceito no Kubernetes, que é então apoiado por recursos de armazenamento específicos no fornecedor de sua escolha, por exemplo, no Azure, é o Azure Disk ou o Azure Files.

Primeiramente, recomendo que você avalie seu aplicativo e determine se realmente precisa armazenar dados de forma persistente em seu pod. Ser apátrida torna sua vida significativamente mais fácil ao trabalhar com Kubernetes do ponto de vista de resiliência e DR. Você poderia tornar seu banco de dados (executado fora do AKS) a fonte da verdade e fazer com que o aplicativo baixe os dados sempre que for executado, por exemplo?

Se você precisar armazenar esses dados, precisará anexar um volume persistente aos seus pods e especificá-lo como um volume em seu arquivo Docker. Há uma boa explicação de como funciona o armazenamento e como configurá-loaqui.

informação relacionada