3.5.2. etcd 데이터 복원
정적 포드에서 etcd를 복원하기 전에 다음을 수행하십시오.
etcdctl
바이너리가 사용 가능해야 합니다. 컨테이너화된 설치에서는rhel7/etcd
컨테이너를 사용할 수 있어야 합니다.다음 명령을 실행하여 etcd 패키지로
etcdctl
바이너리를 설치할 수 있습니다.# yum install etcd
이 패키지에서는 systemd 서비스도 설치합니다. etcd가 정적 포드에서 실행될 때 systemd 서비스로 실행되지 않도록 서비스를 비활성화하고 마스킹하십시오. 서비스를 비활성화하고 마스킹함으로써 실수로 서비스를 시작하는 일이 없게 하고 시스템을 재부팅할 때 서비스가 자동으로 다시 시작되지 않게 할 수 있습니다.
# systemctl disable etcd.service
# systemctl mask etcd.service
정적 포드에서 etcd를 복원하려면 다음을 수행하십시오.
포드가 실행 중이면 포드 매니페스트 YAML 파일을 다른 디렉터리로 이동하여 etcd 포드를 중지하십시오.
# mkdir -p /etc/origin/node/pods-stopped
# mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
이전 데이터를 모두 이동합니다.
# mv /var/lib/etcd /var/lib/etcd.old
포드를 복원할 노드에서 etcdctl을 사용하여 데이터를 다시 생성합니다.
etcd 스냅샷을 etcd 포드의 마운트 경로로 복원하십시오.
# export ETCDCTL_API=3
# etcdctl snapshot restore /etc/etcd/backup/etcd/snapshot.db \ --data-dir /var/lib/etcd/ \ --name ip-172-18-3-48.ec2.internal \ --initial-cluster "ip-172-18-3-48.ec2.internal=https://172.18.3.48:2380" \ --initial-cluster-token "etcd-cluster-1" \ --initial-advertise-peer-urls https://172.18.3.48:2380 \ --skip-hash-check=true
백업 etcd.conf 파일에서 클러스터에 적절한 값을 가져옵니다.
데이터 디렉터리에서 필요한 권한 및 selinux 컨텍스트를 설정하십시오.
# restorecon -RvF /var/lib/etcd/
포드 매니페스트 YAML 파일을 필요한 디렉터리로 이동하여 etcd 포드를 다시 시작하십시오.
# mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/