1. ETCD 백업과 Restore

[따배씨] 01. ETCD Backup&Restore

<aside> 💭 작업 시스템 - k8s master 에서 해라

First, create a snapshot of the existing etcd instance running at https://127.0.0.1:2379, saving the snapshot to /data/etcd-snapshot.db . Next, restore an existing, previous snapshot located at /data/etcd-snapshot-previous.db .

The following TLS certificates/key are supplied for connecting to the server with etcdctl: CA CA certificate : /etc/kubernetes/pki/etcd/ca.crt Client certificate : /etc/kubernetes/pki/etcd/server.crt Client key : /etc/kubernetes/pki/etcd/server.key

</aside>

etcd 스냅샷 파일 저장 위치 : /data/etcd-snapshot.db

이미 만들어져있는 스냅샷 : /data/etcd-snapshot-previous.db

데이터베이스 공간으로 옮겨줘야하는데, etcd 디렉토리를 쓰면안된다. ( 현재 사용하고 있기 때문에 오버라이드 불가)

그렇기 때문에 var/lib/etcd-blahblah 로 옮겨야 한다.

문제풀어보자

치트시트 (참고) :https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster

  1. 환경 설정

    k8s-master 에서 하라고 했으니 그 위치를 확인해본다. 시험에서 간혹 현재 운영중인 쿠버네티스 환경에서 해라 ~ 라고 할 수 도있으니 다음과 같은 명령이 필요하다.

    kubectl config current-context

    만약 k8s-master 가 아니라면,

    ssh k8s-master

    그리고 현재 사용중인 유저가 root 가 아니라면 sudo 를 앞에 붙이거나, sudo -i 로 변경해줘야한다.

  2. 백업을 해보자.

controlplane $ sudo tree /var/lib/etcd
/var/lib/etcd
└── member
├── snap
│   └── db
└── wal
├── 0.tmp
└── 0000000000000000-0000000000000000.wal

3 directories, 3 files

관련 docs

ETCDCTL_API=3 etcdctl --endpoints $ENDPOINT snapshot save snapshot.db

3 버전이라서, 과연 그 버전인지 확인해보자. (( etcd 의 버전을 확인해보자.))