$ cat pod-definition.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
$ kubectl apply -f pod-definition.yaml
더 나은 백업 방법으로는 kube-apiserver 를 쿼리하는 방법이 있다
kube-apiserver 를 쿼리하거나 API 서버에 직접 액세스함으로써 생성된 모든 개체에 대한 리소스 구성을 복사해 저장 할 수 있음$ kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml
클러스터 상태에 관한 정보 저장
클러스터 자체에 관한 정보와 노드 및 클러스터 내부에서 생성된 모든 리소스가 저장
리소스를 백업하는 대신 etcd 서버 자체를 백업하는걸 선택할 수 있음
etcd 클러스터는 마스터노드에 호스트 되어있음
구성하는 동안 모든 데이터가 저장될 장소 명시 (데이터 디렉터리)
그게 백업 도구가 지원할 수 있도록 구성될 수 있는 디렉터리임

$ ETCDCTL_API=3 etcdctl \
snapshot save snapshot.db
$ ls
snapshot.db
$ ETCDCTL_API=3 etcdctl \
snapshot status snapshot.db
kube-apiserver 서비스 중단하기etcd 서버 서비스를 중단kube-apiserver가 거기 속해있기 때문/var/lib/etcd-from-backup--data-dir=/var/lib/etcd-from-backup 에 경로 설정



etcdctl은 etcd를 위한 커맨드라인 클라이언트입니다.
Kubernetes 실습 환경에서는 ETCD 키-값 데이터베이스가 마스터 노드에 static pod로 배포되어 있으며, 사용 버전은 v3입니다.
백업 같은 작업에 etcdctl을 사용하려면, API 버전이 3.x인지 확인해야 합니다:
$ ectdctl version
controlplane ~ ➜ etcdctl version
etcdctl version: 3.5.16
API version: 3.5
✅ 1. etcdctl 사용 (스냅샷 기반 백업)
실행 중인 etcd 서버로부터 스냅샷을 저장하려면 다음 명령어를 사용합니다:
ETCDCTL_API=3 etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot save /backup/etcd-snapshot.db
필수 옵션 설명:
• --endpoints : etcd 서버 주소 지정 (기본값: localhost:2379)
• --cacert : CA 인증서 경로
• --cert : 클라이언트 인증서 경로
• --key : 클라이언트 키 경로
✅ 2. etcdutl 사용 (파일 기반 백업)
etcd가 꺼진 상태에서 파일 단위로 백업하려면 다음 명령을 사용합니다:
etcdutl backup \
--data-dir /var/lib/etcd \
--backup-dir /backup/etcd-backup
이 명령은 etcd의 백엔드 데이터베이스와 WAL 파일을 대상 경로로 복사합니다.
스냅샷 파일의 메타데이터를 확인하려면 다음을 실행합니다:
etcdctl snapshot status /backup/etcd-snapshot.db \
--write-out=table
출력에는 크기, 리비전, 해시값, 총 키 개수 등이 포함되어, 복원 전 무결성 확인에 유용합니다.
✅ 1. etcdutl을 사용한 복원
스냅샷 파일을 새로운 디렉터리에 복원하려면 다음 명령을 사용합니다:
etcdutl snapshot restore /backup/etcd-snapshot.db \
--data-dir /var/lib/etcd-restored
✅ 2. etcdutl 백업 파일 복원
etcdutl backup으로 만든 파일을 복원하려면, 백업한 파일을 /var/lib/etcd에 복사하고 etcd를 재시작하면 됩니다.
• etcdctl snapshot save : 실행 중인 etcd 클러스터로부터 .db 형식의 스냅샷을 생성합니다.
• etcdctl snapshot status : 스냅샷의 메타데이터를 조회합니다.
• etcdutl snapshot restore : .db 스냅샷 파일을 복원합니다.
• etcdutl backup : etcd가 실행 중이지 않아도 데이터 디렉터리와 WAL 파일을 파일 단위로 백업할 수 있습니다.