ETCD (Distributed reliable Key-Value Store)
https://github.com/etcd-io/etcd
Como mencionado anteriormente, o ETCD é um store para guardar chave e valor de forma:
- Segura
- Rápida
- Simples
Quando um banco de dados SQL adiciona uma nova entrada em uma tabela nem todas as informações são preenchidas. Uma nova coluna impactaria na adição dessa informação para todas as entradas (linhas) da tabela.

Em um key-value store como o ETCD ficaria assim.

Todas as informações de uma entrada ficam juntas numa única tabela chave-valor sendo que uma nova entrada nela não impacta em outras. Yaml e Json conseguem representar essas tabelas de forma muito simples.
Instalação
Para instalar é só fazer o download do binário, extrair e rodar.
curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.11/etcd-v3.5.11-linux-amd64.tar.gz -o etcd-v3.5.11-linux-amd64.tar.gz
tar xzvf etcd-v3.5.11-linux-amd64.tar.gz
tar - xzvf
cd etcd-v3.5.11-linux-amd64
./etcd
....#Removed
94d","cluster-version":"3.5"}
{"level":"info","ts":"2023-12-22T19:55:41.701034-0300","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"}
{"level":"info","ts":"2023-12-22T19:55:41.701049-0300","caller":"etcdserver/server.go:2599","msg":"cluster version is updated","cluster-version":"3.5"}
{"level":"info","ts":"2023-12-22T19:55:41.701228-0300","caller":"embed/serve.go:187","msg":"serving client traffic insecurely; this is strongly discouraged!","traffic":"grpc+http","address":"127.0.0.1:2379"} #<<<<<
Irá iniciar um serviço que irá escutar na porta 2379.
Usando um client podemos recuperar e armazenar informações. O client que já vem com o pacote é o etcdctl.
./etcdctl version
etcdctl version: 3.5.11
API version: 3.5
➜ ./etcdctl put key1 value1
OK
➜ ./etcdctl get key1
key1
value1
Caso queira instalar o etcdctl em uma máquina Ubuntu podemos instalar o pacote.
sudo apt-get install etcd-client
ETCD no Kubernetes
Serve para armazenar as informações dos nodes, pods, configs, secrets, accounts, roles, bindings, etc. Todas as informações que o Kube-APIServer gerencia ficam armazenadas no ETCD, ou seja, se perdermos o ETCD todo o cluster é perdido.
Somente depois de atualizada a informação no ETCD uma mudança no cluster é considerada completa.
Geralmente o ETCD acaba ficando junto dos nodes do control plane quando configuramos o cluster usando kubeadm, mas o ETCD pode ser um serviço à parte do Kubernetes. Durante o curso vamos aprender como configurar um cluster com ETCD externo em alta disponibilidade.