반응형
Backup and Restore Methods
Backup Candidates
- Resource Configuration
- ETCD Cluster
- Persistent Volumes
Backup - Resource Configuration
- Resource Configuration의 경우 declarative 한 방식을 사용하는게 configuration을 저장하기 위해 좋다.
- declarative한 방식을 사용했을 때, 가장 좋은 방식은 yaml을 git에 저장해 버전 관리를 하는 것이다.
- declarative 한 방식과 imperative한 방식을 모두 사용할 수 있으므로 resource configuration backup을 위한 최선의 방법은 query the API server이다.
kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml
- 위의 command를 사용하여 Resource configuration을 yaml 형태로 저장할 수 있다.
Backup -ETCD
- ETCD는 cluster의 상태에 대한 정보를 저장한다.
etcd.service
에서--date-dir=/var/lib/etcd
를 백업해야한다.- etcd는 snapshot solution을 사용할 수 있다.
ETCDCTL_API=3 etcdctl \
snapshot save snapshot.db(스냅샷 이름)
Restore - ETCD
- stop kube-apiserver
service kube-apiserver stopped
- etcdctl 명령어로 특정 snapshot을 restore 한다.
ETCDCTL_API=3 etcdctl \
snapshot restore snapshot.db \
--data-dir /var/lib/etcd-from-backup
- restore가 실행되면 새로운 etcd 클러스터가 만들어지고, configured된다. 기존의 클러스터와 새로운 클러스터가 결합되지않도록 한다.
- 이 command를 실행하면 새로운 data dir이 생성된다. etcd.service config에도 새로운 data dir을 사용한다.
그 후 daemon 을 reload하고
systemctl daemon-reload
etcd를 재시작한다.
service etcd restart
마지막으로 kube-apiserver를 시작한다.
service kube-apiserver start
- etcd backup을 수행할 때는 option으로 아래의 것들을 명시해주어야한다.
--endpoints=
--cacert=
--cert=
--key=
반응형
'공부기록 > MLOps | Infra' 카테고리의 다른 글
[k8s] python sdk를 이용해 Pod 내에서 Kubernetes API 사용하기 (0) | 2022.10.06 |
---|---|
[kubeflow] kfp.dsl을 사용한 pod scheduling (0) | 2022.09.02 |
[k8s] Cluster Upgrade Process (0) | 2022.08.29 |
[k8s] drain and cordon (0) | 2022.08.28 |
[k8s] Multi Container PODs (0) | 2022.08.28 |