Kubernetes ETCD 관리: 환경 변수 설정, 스냅샷 저장 및 복구 가이드

1–2분

ETCD는 Kubernetes의 핵심 데이터 저장소로, 클러스터 상태와 구성을 저장합니다. 이 글에서는 ETCD 관리에 필요한 환경 변수 설정부터 스냅샷 저장 및 복구 방법을 단계별로 설명하겠습니다.


1. 환경 변수 설정

ETCD 명령어를 실행하기 전에 환경 변수를 설정해야 합니다. 아래 코드는 ETCDCTL_API와 연결 정보 등을 설정하는 방법을 보여줍니다.

export ETCDCTL_API=3
export ETCDCTL_ENDPOINTS=https://127.0.0.1:2379
export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key


설명:

  • ETCDCTL_API=3: ETCD의 API 버전을 설정합니다. 일반적으로 최신 버전인 3을 사용합니다.
  • ETCDCTL_ENDPOINTS: ETCD의 엔드포인트 URL을 지정합니다.
  • ETCDCTL_CACERT, ETCDCTL_CERT, ETCDCTL_KEY: SSL/TLS 인증서를 경로로 지정합니다.

2. 멤버 리스트 확인

ETCD 클러스터에 포함된 노드의 목록을 확인하려면 다음 명령어를 실행합니다.

etcdctl --endpoints=https://127.0.0.1:2379 \\
--cacert=/etc/kubernetes/pki/etcd/ca.crt \\
--cert=/etc/kubernetes/pki/etcd/peer.crt \\
--key=/etc/kubernetes/pki/etcd/peer.key \\
member list


출력 예시:

1c52c7e5f2a5d6a2, started, master1, <https://222.122.41.82:2380>
4d14b8ecf03e56f9, started, master2, <https://222.122.41.83:2380>
92c89b5ecb7e4db1, started, master3, <https://222.122.41.84>:

이 명령어를 통해 클러스터의 각 멤버 상태와 연결 정보를 확인할 수 있습니다.


3. 스냅샷 저장하기

ETCD 데이터를 백업하려면 **스냅샷(snapshot)**을 저장해야 합니다. 다음 명령어를 사용합니다.

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 /root/snapshot.db

출력 예시:

Snapshot saved at /root/snapshot.db

중요: 스냅샷 파일(/root/snapshot.db)은 안전한 장소에 저장해야 합니다. 이는 ETCD 데이터를 복구할 때 사용됩니다.


4. 스냅샷으로 복구하기

ETCD 클러스터를 복구하려면 저장된 스냅샷을 기반으로 복원해야 합니다. 다음 명령어를 사용합니다.

etcdctl --endpoints=https://127.0.0.1:2379 \\
--cacert=/etc/kubernetes/pki/etcd/ca.crt \\
--cert=/etc/kubernetes/pki/etcd/peer.crt \\
--key=/etc/kubernetes/pki/etcd/peer.key \\
snapshot restore /root/snapshot.db \\
--name master2 \\
--initial-cluster master1=https://222.122.41.82:2380,master2=https://222.122.41.83:2380,master3=https://222.122.41.84:2380 \\
--initial-advertise-peer-urls <https://222.122.41.83:2380> \\
--data-dir /var/lib/etcd


옵션 설명:

  • -name: 복구할 노드의 이름입니다.
  • -initial-cluster: 클러스터 내 모든 노드의 정보를 제공합니다.
  • -initial-advertise-peer-urls: 복구된 노드가 다른 멤버와 통신할 URL을 지정합니다.
  • -data-dir: 데이터를 복구할 디렉터리를 지정합니다.

주의: 복구 작업 후에는 클러스터 구성을 다시 확인하고 테스트해야 합니다.


5. ETCD 상태 확인

ETCD의 연결 상태를 확인하려면 아래 명령어를 실행합니다.

etcdctl endpoint health

출력 예시:

<https://127.0.0.1:2379> is healthy: successfully committed proposal: took = 1.234ms

이 명령어는 ETCD가 정상적으로 작동하고 있는지 여부를 알려줍니다.


결론

ETCD는 Kubernetes 클러스터에서 매우 중요한 역할을 합니다. 따라서 정기적으로 스냅샷을 저장하고 복구 절차를 익혀 두는 것이 중요합니다. 이 가이드에 따라 환경을 설정하고 데이터를 안전하게 관리해 보세요.

Tip: 운영 중인 클러스터의 데이터를 변경하거나 복구 작업을 수행할 때는 항상 백업을 먼저 진행하십시오.