Linux에서 docker-compose로 ETCD 설치 가이드

概述

docker-compose를 사용하여 Linux 환경에서 ETCD를 설치하고 구성하는 방법을 설명한다. ETCD는 분산 키-값 저장소로, Kubernetes 등의 클러스터링 솔루션에서 널리 사용된다.

  1. 디렉토리 생성

ETCD 데이터와 설정 파일을 저장할 디렉토리를 생성한다.

mkdir -p /home/service/etcd/data
mkdir -p /home/service/etcd/conf
  1. ETCD 설정 파일 작성

/home/service/etcd/conf/etcd.yml 파일을 생성하고 다음 내용을 입력한다.

# ETCD 멤버 이름
name: etcd01

# 데이터 저장 경로
data-dir: /data

# 클라이언트 연결용 주소
listen-client-urls: http://0.0.0.0:2379

# 피어 간 통신용 주소
listen-peer-urls: http://0.0.0.0:2380

# 클라이언트에 광고할 URL (주석 해제 후 사용 가능)
# advertise-client-urls: http://etcd01:2379

자세한 설정 옵션은 공식 ETCD 설정 샘플을 참조한다.

  1. docker-compose 파일 작성

/home/service/etcd/docker-compose.yaml 파일을 생성한다.

version: "3.5"

services:
  etcd:
    hostname: etcd
    image: bitnami/etcd:3.5.9
    container_name: etcd
    restart: always
    privileged: true
    volumes:
      - "/home/service/etcd/data:/data"
      - "/home/service/etcd/conf:/opt/bitnami/etcd/conf"
    environment:
      - "ALLOW_NONE_AUTHENTICATION=yes"
      - "ETCD_CONFIG_FILE=/opt/bitnami/etcd/conf/etcd.yml"
    ports:
      - "2379:2379"
      - "2380:2380"
    networks:
      - etcdnet

networks:
  etcdnet:
    name: etcdnet
  1. 컨테이너 실행

docker-compose 파일이 있는 디렉토리에서 다음 명령어로 컨테이너를 실행한다.

cd /home/service/etcd
docker-compose up -d

컨테이너 실행 상태를 확인한다.

docker ps
  1. 사용자 및 인증 설정

컨테이너 내부로 접속하여 사용자 관리와 권한 인증을 설정한다.

docker exec -it <컨테이너_ID> sh

ETCD 클라이언트 도구(etcdctl)를 사용하여 다음과 같이 설정한다.

# 루트 역할 생성
etcdctl role add root

# 루트 사용자 생성
etcdctl user add root

# 사용자에게 역할 할당
etcdctl user grant-role root root

# 사용자 정보 확인
etcdctl user get root

# 역할에 키 권한 부여 ( "/"는 모든 키에 대한 읽기/쓰기 권한)
etcdctl role grant-permission root readwrite /

# 인증 활성화
etcdctl auth enable

인증이 활성화된 후에는 대부분의 명령어에 자격 증명을 포함해야 한다.

# 인증 비활성화
etcdctl auth disable --user=root --password=비밀번호

# 비밀번호 변경
etcdctl user passwd root --user=root --password=현재비밀번호
  1. 기본 사용 명령어
# 키-값 저장
etcdctl put key value

# 키-값 조회
etcdctl get key

# 접두사를 포함한 조회
etcdctl get --prefix "prefix"

# 모든 키-값 쌍 조회
etcdctl get --prefix ""

# 키 삭제
etcdctl del key

인증이 활성화된 상태에서는 --user=username --password=password 옵션을 명령어에 추가해야 한다.

태그: docker etcd linux docker-compose key-value-store

7월 13일 00:10에 게시됨