Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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를 복원하려면 다음을 수행하십시오.

  1. 포드가 실행 중이면 포드 매니페스트 YAML 파일을 다른 디렉터리로 이동하여 etcd 포드를 중지하십시오.

    # mkdir -p /etc/origin/node/pods-stopped
    # mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
  2. 이전 데이터를 모두 이동합니다.

    # mv /var/lib/etcd /var/lib/etcd.old

    포드를 복원할 노드에서 etcdctl을 사용하여 데이터를 다시 생성합니다.

  3. 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 파일에서 클러스터에 적절한 값을 가져옵니다.

  4. 데이터 디렉터리에서 필요한 권한 및 selinux 컨텍스트를 설정하십시오.

    # restorecon -RvF /var/lib/etcd/
  5. 포드 매니페스트 YAML 파일을 필요한 디렉터리로 이동하여 etcd 포드를 다시 시작하십시오.

    # mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/