Boa tarde, Pessoal. 👋
- etcd: a camada de armazenamento do Kubernetes
Estudando Kubernetes, comecei a olhar com mais atenção para alguns componentes que quase não aparecem no uso do dia a dia, mas são fundamentais para o funcionamento do cluster. Um deles é o etcd.
Quando estamos em ambientes gerenciados, principalmente em nuvem, é muito fácil focar só em Deployment, Service, Ingress, escalabilidade e esquecer da base que sustenta o estado do cluster. Mas entender isso ajuda bastante a enxergar melhor o funcionamento do Kubernetes por trás dos panos.
━━━━━━━━━━━━━━━━━━
📌 O que é o etcd?
━━━━━━━━━━━━━━━━━━
O etcd é um banco de dados distribuído do tipo chave-valor que o Kubernetes usa para armazenar o estado do cluster.
É nele que ficam registradas informações como:
• Pods
• Services
• Deployments
• ConfigMaps
• Secrets
• Namespaces
• entre outros objetos do plano de controle
Ou seja, boa parte do que existe no cluster, em algum momento, depende do etcd para ter esse estado armazenado.
━━━━━━━━━━━━━━━━━━
⚙️ Como ele participa da arquitetura do Kubernetes
━━━━━━━━━━━━━━━━━━
Na prática, a comunicação acontece principalmente por meio do kube-apiserver. É ele que recebe as requisições, faz a validação, processa as informações e consulta ou grava esses dados no etcd.
Isso ajuda a entender melhor o papel do etcd: mesmo sem aparecer tanto no uso diário, ele é uma peça central da arquitetura.
Em ambientes com alta disponibilidade, o etcd pode rodar em múltiplos nós, formando um cluster distribuído. Isso aumenta a resiliência e reduz o risco de indisponibilidade em caso de falha de uma instância.
Por isso, a saúde do etcd impacta diretamente a saúde do cluster.
━━━━━━━━━━━━━━━━━━
💾 E o backup, como funciona?
━━━━━━━━━━━━━━━━━━
Como o etcd armazena o estado do cluster, manter backups regulares é essencial para recuperação em cenários de desastre, como perda de nós do plano de controle ou corrupção de dados.
A forma mais comum de fazer isso é por meio de snapshot.
Esse snapshot registra o conteúdo do banco naquele momento e pode ser usado depois em uma restauração.
Um detalhe importante: não é necessário parar o kube-apiserver para gerar esse backup.
O etcd permite criar snapshot a partir de um membro em execução usando o comando etcdctl snapshot save. Ou seja, esse processo pode ser feito com o serviço ativo.
━━━━━━━━━━━━━━━━━━
🧩 Exemplo de comando: doc: Operando clusters etcd para Kubernetes | Kubernetes
━━━━━━━━━━━━━━━━━━
🔎 O que esse comando faz: Leia a doc: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/
━━━━━━━━━━━━━━━━━━
🛠️ Exemplo prático: Leia a doc também: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/
━━━━━━━━━━━━━━━━━━
Depois de gerar o backup, ainda é possível validar o snapshot com:
- etcdutl --write-out=table snapshot status /backup/etcd-snapshot.db
Top comments (0)