SUSE에서 Etcd

지금은 etcd3용 distro 패키지가 없습니다. 이 가이드는 적절한 distro 패키지가 나올 때까지 차선책으로서 tarball 설치를 사용합니다.

해당 etcd 서비스는 컨트롤러 노드에서 실행합니다.

구성요소 설치 및 구성

  1. etcd 설치

    • etcd 사용자 생성

      # groupadd --system etcd
      # useradd --home-dir "/var/lib/etcd" \
            --system \
            --shell /bin/false \
            -g etcd \
            etcd
      
    • 필요한 디렉토리 생성

      # mkdir -p /etc/etcd
      # chown etcd:etcd /etc/etcd
      # mkdir -p /var/lib/etcd
      # chown etcd:etcd /var/lib/etcd
      
    • 시스템 아키텍처 결정하기:

      # uname -m
      
    • x86_64/amd64를 위한 etcd tarball을 다운로드 및 설치합니다:

      # ETCD_VER=v3.2.7
      # rm -rf /tmp/etcd && mkdir -p /tmp/etcd
      # curl -L \
            https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz \
            -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
      # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz \
            -C /tmp/etcd --strip-components=1
      # cp /tmp/etcd/etcd /usr/bin/etcd
      # cp /tmp/etcd/etcdctl /usr/bin/etcdctl
      

      또는 arm64를 위한 etcd tarball을 다운로드 및 설치합니다:

      # ETCD_VER=v3.2.7
      # rm -rf /tmp/etcd && mkdir -p /tmp/etcd
      # curl -L \
            https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-arm64.tar.gz \
            -o /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz
      # tar xzvf /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz \
            -C /tmp/etcd --strip-components=1
      # cp /tmp/etcd/etcd /usr/bin/etcd
      # cp /tmp/etcd/etcdctl /usr/bin/etcdctl
      
  1. /etc/etcd/etcd.conf.yml 파일을 생성 및 편집하여 initial-cluster, initial-advertise-peer-urls, advertise-client-urls, listen-client-urls 를 관리 네트워크를 통해 다른 노드에 대한 액세스를 활성화도록 컨트롤러 노드에 대한 관리 IP 주소로 설장합니다:

    name: controller
    data-dir: /var/lib/etcd
    initial-cluster-state: 'new'
    initial-cluster-token: 'etcd-cluster-01'
    initial-cluster: controller=http://10.0.0.11:2380
    initial-advertise-peer-urls: http://10.0.0.11:2380
    advertise-client-urls: http://10.0.0.11:2379
    listen-peer-urls: http://0.0.0.0:2380
    listen-client-urls: http://10.0.0.11:2379
    
  2. /usr/lib/systemd/system/etcd.service 파일을 생성 및 편집합니다:

    [Unit]
    After=network.target
    Description=etcd - highly-available key value store
    
    [Service]
    # Uncomment this on ARM64.
    # Environment="ETCD_UNSUPPORTED_ARCH=arm64"
    LimitNOFILE=65536
    Restart=on-failure
    Type=notify
    ExecStart=/usr/bin/etcd --config-file /etc/etcd/etcd.conf.yml
    User=etcd
    
    [Install]
    WantedBy=multi-user.target
    

    systemd 서비스 파일을 다음과 함께 다시 로딩합니다:

    # systemctl daemon-reload
    

설치 마무리

  1. etcd 서비스를 활성화한 후 시작합니다:

    # systemctl enable etcd
    # systemctl start etcd