Cluster do GKE perde dados

Cluster do GKE perde dados

Sou novo no GCP, então perdoe a ignorância.

Eu tenho um cluster GKE de 3 nós que está executando um aplicativo de banco de dados. Cada nó possui um disco permanente padrão de 100 GB alocado. No entanto, de vez em quando descubro (aconteceu pelo menos três vezes desde agosto) que eu inicializo e os dados são perdidos e todas as regras de firewall que foram implementadas são redefinidas para o padrão.

Como posso:

  1. Impedir que os dados no banco de dados sejam apagados
  2. impedir que as regras do firewall sejam redefinidas

Isso se deve à modernização da infraestrutura?

Responder1

Publicar esta resposta no wiki da comunidade como o tópico subjacente da pergunta pode ser um pouco amplo.

Sinta-se à vontade para expandi-lo.


Por que um GKEcluster pode perder dados?

Sem informações específicas sobre como exatamente o aplicativo/carga de trabalho foi implantado em um GKEcluster, pode ser difícil identificar o problema real.

Vale a pena mencionar o seguinte:

  • Cargas de trabalho que têm expectativa de armazenar dados (como bancos de dados) devem usarPersistent Volumes. Em caso de falha do nó, os dados armazenados em um PVnão serão perdidos, pois serão armazenados em uma entidade diferente.

PersistentVolumerecursos são usados ​​para gerenciar o armazenamento durável em um cluster. Em GKE, a PersistentVolumenormalmente é apoiado por um disco permanente.

Cloud.google.com: Kubernetes Engine: Documentos: Conceitos: Volumes Persistentes

Há um guia para implantar o WordPress no GKE com discos permanentes e Cloud SQL. Poderia ser usado um exemplo para implantar carga de trabalho com PVC(disco permanente):

  • Os dados armazenados Podsque não tenham nenhum Volumesconfigurado serão perdidos no caso de qualquer recriação do pod.

  • Os dados armazenados em um GKEdisco de inicialização do nó não são persistentes nas atualizações.

As modificações no disco de inicialização de uma VM do nó não persistem nas recriações do nó. Para preservar as modificações na recriação do nó, use um DaemonSet.

Cloud.google.com: Kubernetes Engine: Documentos: Como fazer: Atualização automática de nós: Visão geral


Referindo-se à pergunta feita

Sou novo no GCP, então perdoe a ignorância.

Eu encorajo você a visitar a documentação oficial do GCPe GKE. Você pode descobrir que há muitas informações/guias e exemplos a seguir:

Cada nó possui um disco permanente padrão de 100 GB alocado.

Esses discos são usados ​​especificamente como discos de inicialização para um GKEnó e não devem ser usados ​​como local para armazenar dados. Você pode usar Persistent Volumesconforme mencionado anteriormente ou optar por um SSD local sobre o qual você pode ler mais seguindo o link abaixo:

No entanto, de vez em quando descubro (aconteceu pelo menos três vezes desde agosto) que inicializo e os dados são perdidos

GKEcluster e nós não podem ser desligados. O que você pode fazer é reduzir (escalar) a quantidade de nós em um pool de nós. Você quis dizer que você se conecta a ele?

quaisquer regras de firewall implementadas serão redefinidas para o padrão.

Você não deve reconfigurar as regras de firewall de um GKEnó. Em vez disso, você deve usar o Firewall GCP localizado em Cloud Console(Web UI) -> VPC Network-> Firewall. Uma recriação de nó devido a uma atualização ou falha de nó redefinirá as regras de firewall.

Como posso:

  1. Impedir que os dados no banco de dados sejam apagados
  2. impedir que as regras do firewall sejam redefinidas

Isso se deve à modernização da infraestrutura?

Você poderia considerar (dependendo do seu caso de uso exato) usar a GCEinstância em vez de um GKEcluster. GKEé um cluster Kubernetes gerenciado projetado para executar cargas de trabalho em contêineres e algumas de suas partes são gerenciadas pelo Google (como, por exemplo, o plano de controle).

Quanto à atualização da infraestrutura, você pode dar uma olhada no que acontece quando um cluster é atualizado seguindo os links abaixo:


Referência adicional:

informação relacionada