![Cluster do GKE perde dados](https://rvso.com/image/761000/Cluster%20do%20GKE%20perde%20dados.png)
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:
- Impedir que os dados no banco de dados sejam apagados
- 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 GKE
cluster pode perder dados?
Sem informações específicas sobre como exatamente o aplicativo/carga de trabalho foi implantado em um GKE
cluster, 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 usar
Persistent Volumes
. Em caso de falha do nó, os dados armazenados em umPV
não serão perdidos, pois serão armazenados em uma entidade diferente.
PersistentVolume
recursos são usados para gerenciar o armazenamento durável em um cluster. EmGKE
, aPersistentVolume
normalmente é 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
Pods
que não tenham nenhumVolumes
configurado serão perdidos no caso de qualquer recriação do pod.Os dados armazenados em um
GKE
disco 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.
Referindo-se à pergunta feita
Sou novo no GCP, então perdoe a ignorância.
Eu encorajo você a visitar a documentação oficial do GCP
e 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 GKE
nó e não devem ser usados como local para armazenar dados. Você pode usar Persistent Volumes
conforme 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
GKE
cluster 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 GKE
nó. 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:
- Impedir que os dados no banco de dados sejam apagados
- 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 GCE
instância em vez de um GKE
cluster. 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:
- Cloud.google.com: Kubernetes Engine: Documentos: Conceitos: atualizações de cluster
- Cloud.google.com: Kubernetes Engine: Documentos: Conceitos: Como fazer: Atualizar um cluster
Referência adicional:
- Kubernetes.io
- Cloud.google.com: SQL<- solução alternativa para rodar
DB
no GCP