ectd server

 

ectd server


  • etcd is a consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.
  • etcd is an open source distributed key-value store used to hold and manage the critical information that distributed systems need to keep running.
  • Kubernetes uses etcd to store all its data – its configuration data, its state, and its metadata.
  • It stores the data in key value pair

Access etcd data

Prerequisite ( Install etcdctl )

   sudo apt -y install wget
   export RELEASE="3.3.13"
   wget https://github.com/etcd-io/etcd/releases/download/v${RELEASE}/etcd-v${RELEASE}-linux-amd64.tar.gz
   tar xvf etcd-v${RELEASE}-linux-amd64.tar.gz
   cd etcd-v${RELEASE}-linux-amd64
   sudo mv etcd etcdctl /usr/local/bin
   etcd --version
   etcdctl --version

Step1:- check etcd pod description with following command

   kubectl describe pod etcd-kmaster -n kube-system

Check the command property of etcd it contains all the information of the etcd server properties

Step2:- Find all the keys in etcd server

ETCDCTL_API=3 etcdctl --endpoints=https://172.31.8.197:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt get / --prefix --keys-only

Step3:- Put a key in etcd db

ETCDCTL_API=3 etcdctl --endpoints=https://172.31.8.197:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt put name raman

Step4:- Get a key value from etcd server

ETCDCTL_API=3 etcdctl --endpoints=https://172.31.8.197:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt get name

Backup and Restore etcd server

𝐄𝐓𝐂𝐃 𝐁𝐚𝐜𝐤𝐮𝐩 & 𝐑𝐞𝐬𝐭𝐨𝐫𝐞

We should use the ETCDCTL tool to interact with the ETCD cluster. Let’s look at the steps involved in the backup:

➥ Create a data snapshot ➥ Copy the snapshot to a PVC ➥ Restore the snapshot in a new cluster

And, that is exactly how we start creating a highly available cluster.

Backup etcd server

ETCDCTL_API=3 etcdctl snapshot save snapshot.db  --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt
Snapshot saved at snapshot.db

ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshot.db

  mkdir backup
  cd backup/
  cp -r /etc/kubernetes/pki .

Restore etcd server

--Reset the cluster
 kubeadm reset -f

---Copy the folder
cd backup
cp -r pki  /etc/kubernetes
cd ..

ETCDCTL_API=3 etcdctl snapshot restore snapshot.db
mv default.etcd/member /var/lib/etcd/

Comments