OpenShift etcd 백업 및 복원 절차
페이지 정보
본문
* Platform Version : Redhat OpenShift 3.9
1. etcd란
분산된 시스템 또는 클러스터의 설정을 공유하는 서비스 검색 및 스케줄러 조정을 위한 오픈소스이다.
분산형 키-값으로 저장소이며, etcd는 호스트에 스케줄링 되는 작업을 조정하며, 컨테이너에 대한 오버레이트 네트워킹 설정을 지원한다.
쿠버네티스와 etcd
쿠버네티스의 기본 데이터 저장소인 etcd는 모든 쿠버네티스 클러스터의 상태를 저장하고 복제한다. etcd는 쿠버네티스 클러스터를 구성하는 필수 요소이며 데이터들은 persistent 하게 저장된다.
etcd 는 컨테이너 오케스트레이션을 위한 쿠버네티스의 기본 데이터 저장소이며, 클라우드 네이티브 애플리케이션은 etcd를 사용함으로써 더욱 일광성 있는 가동 시간을 유지한다. 애플리케이션은 etcd에 데이터를 읽고 쓰며, 이를 통해 설정 데이터를 배포하여 노드 설정에 대한 이중화 및 복구를 제공한다.
2. etcd 백업 절차
2.1. etcd 스냅 샷 캡처
etcd의 현재 상태를 저장하기 위해 스냅 샷 캡처를 한다.
# mkdir -p backup/etcd-$(date +%Y%m%d)
# etcdctl3 snapshot save /var/lib/etcd/snapshot.db
* etcd 환경 변수 및 인증서 적용 *
# export ETCDCTL_API=3
# source /etc/etcd/etcd.conf
# etcdctl --cert=$ETCD_PEER_CERT_FILE \
--key=$ETCD_PEER_KEY_FILE \
--cacert=$ETCD_TRUSTED_CA_FILE \
--endpoints=$ETCD_LISTEN_CLIENT_URLS \
snapshot save snapshot.db
3. etcd 복원 절차
3.1. etcd 구성원 서비스 중지
모든 etcd 구성원에서 etcd, master-api, master-controllers 서비스를 중지한다.
# system stop etcd.service atomic-openshift-master-api atomic-openshift-master-controllers
3.2. etcd 데이터 삭제
etcd 복원 절차를 수행 할 노드에서 데이터를 다시 생성하므로 이전 데이터를 삭제한다.
# rm -r /var/lib/etcd
3.3. etcd 복원
etcd 스냅샷 복원 명령을 실행하여 파일의 값을 복원 시킨다.
# etcdctl3 snapshot restore backup/etcd-20200729/db --data-dir /var/lib/etcd --name master1.test.com --initial-cluster "master1.test.com=https://192.168.88.211:2380" \ --initial-cluster-token="etcd-cluster-1" --initial-advertise-peer-urls=https://192.168.88.211:2380
* 인증서 및 키 적용 *
# etcdctl --cert=$ETCD_PEER_CERT_FILE \
--key=$ETCD_PEER_KEY_FILE \
--cacert=$ETCD_TRUSTED_CA_FILE \
snapshot restore snapshot.db \
--name $ETCD_NAME \
--initial-cluster $ETCD_INITIAL_CLUSTER \
--initial-cluster-token $ETCD_INITIAL_CLUSTER_TOKEN \
--initial-advertise-peer-urls $ETCD_INITIAL_ADVERTISE_PEER_URLS
3.4. 파일 권한 및 컨텍스트 설정
# chown -R etcd:etcd /var/lib/etcd/
# restorecon -Rv /var/lib/etcd
3.5. etcd 서비스 시작 및 상태 확인
# systemctl start etcd
# systemctl status etcd
3.6. OpenShift 서비스 시작
각 마스터에서 master-api, master-controolers 서비스를 시작한다.
# systemctl start atomic-openshift-master-api atomic-openshift-master-controllers
3.7. etcd 상태 체크
# ETCD_ALL_ENDPOINTS=` etcdctl3 --write-out=fields member list | awk '/ClientURL/{printf "%s%s",sep,$3; sep=","}'`
# etcdctl3 --endpoints=$ETCD_ALL_ENDPOINTS endpoint status --write-out=table
3.8 클러스터 상태 확인
# oc get nodes,pods -n kube-system
1. etcd란
분산된 시스템 또는 클러스터의 설정을 공유하는 서비스 검색 및 스케줄러 조정을 위한 오픈소스이다.
분산형 키-값으로 저장소이며, etcd는 호스트에 스케줄링 되는 작업을 조정하며, 컨테이너에 대한 오버레이트 네트워킹 설정을 지원한다.
쿠버네티스와 etcd
쿠버네티스의 기본 데이터 저장소인 etcd는 모든 쿠버네티스 클러스터의 상태를 저장하고 복제한다. etcd는 쿠버네티스 클러스터를 구성하는 필수 요소이며 데이터들은 persistent 하게 저장된다.
etcd 는 컨테이너 오케스트레이션을 위한 쿠버네티스의 기본 데이터 저장소이며, 클라우드 네이티브 애플리케이션은 etcd를 사용함으로써 더욱 일광성 있는 가동 시간을 유지한다. 애플리케이션은 etcd에 데이터를 읽고 쓰며, 이를 통해 설정 데이터를 배포하여 노드 설정에 대한 이중화 및 복구를 제공한다.
2. etcd 백업 절차
2.1. etcd 스냅 샷 캡처
etcd의 현재 상태를 저장하기 위해 스냅 샷 캡처를 한다.
# mkdir -p backup/etcd-$(date +%Y%m%d)
# etcdctl3 snapshot save /var/lib/etcd/snapshot.db
* etcd 환경 변수 및 인증서 적용 *
# export ETCDCTL_API=3
# source /etc/etcd/etcd.conf
# etcdctl --cert=$ETCD_PEER_CERT_FILE \
--key=$ETCD_PEER_KEY_FILE \
--cacert=$ETCD_TRUSTED_CA_FILE \
--endpoints=$ETCD_LISTEN_CLIENT_URLS \
snapshot save snapshot.db
3. etcd 복원 절차
3.1. etcd 구성원 서비스 중지
모든 etcd 구성원에서 etcd, master-api, master-controllers 서비스를 중지한다.
# system stop etcd.service atomic-openshift-master-api atomic-openshift-master-controllers
3.2. etcd 데이터 삭제
etcd 복원 절차를 수행 할 노드에서 데이터를 다시 생성하므로 이전 데이터를 삭제한다.
# rm -r /var/lib/etcd
3.3. etcd 복원
etcd 스냅샷 복원 명령을 실행하여 파일의 값을 복원 시킨다.
# etcdctl3 snapshot restore backup/etcd-20200729/db --data-dir /var/lib/etcd --name master1.test.com --initial-cluster "master1.test.com=https://192.168.88.211:2380" \ --initial-cluster-token="etcd-cluster-1" --initial-advertise-peer-urls=https://192.168.88.211:2380
* 인증서 및 키 적용 *
# etcdctl --cert=$ETCD_PEER_CERT_FILE \
--key=$ETCD_PEER_KEY_FILE \
--cacert=$ETCD_TRUSTED_CA_FILE \
snapshot restore snapshot.db \
--name $ETCD_NAME \
--initial-cluster $ETCD_INITIAL_CLUSTER \
--initial-cluster-token $ETCD_INITIAL_CLUSTER_TOKEN \
--initial-advertise-peer-urls $ETCD_INITIAL_ADVERTISE_PEER_URLS
3.4. 파일 권한 및 컨텍스트 설정
# chown -R etcd:etcd /var/lib/etcd/
# restorecon -Rv /var/lib/etcd
3.5. etcd 서비스 시작 및 상태 확인
# systemctl start etcd
# systemctl status etcd
3.6. OpenShift 서비스 시작
각 마스터에서 master-api, master-controolers 서비스를 시작한다.
# systemctl start atomic-openshift-master-api atomic-openshift-master-controllers
3.7. etcd 상태 체크
# ETCD_ALL_ENDPOINTS=` etcdctl3 --write-out=fields member list | awk '/ClientURL/{printf "%s%s",sep,$3; sep=","}'`
# etcdctl3 --endpoints=$ETCD_ALL_ENDPOINTS endpoint status --write-out=table
3.8 클러스터 상태 확인
# oc get nodes,pods -n kube-system
- 이전글OpenShift nodejs container 실행 테스트 21.01.06
- 다음글OpenShift sftp container 활용하기 20.11.30
댓글목록
등록된 댓글이 없습니다.