[쿠버네티스] ETCD

    728x90
    반응형

    출처

    Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스

    Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy)

     

    ETCD

    etcd?

    분산 시스템에서 데이터를 저장하고 관리하기 위한 고가용성 키-값 저장소

    주로 Kubernetes와 같은 클라우드 네이티브 애플리케이션에서 구성 정보를 저장하는 데 사용된다
    Replicated state machine(RSM)


    Replicated state machine

    RSM

    분산 시스템에서 상태를 복제하여 일관성을 유지하는 방식

    다수의 노드가 클러스터를 구성하고 있는 상황에서 일부 장애가 발생하더라도 전체 시스템은 문제 없이 동작할 수 있도록 작동한다

    Kafka의 Apache Zookeeper, etcd 등이 있다


    etcd in kubernetes

    kubernetes에서 etcd의 기능

    노드, pod, Config, Secret, 계정, 권한 등 클러스터 관련 정보를 저장한다

    클러스터의 정보가 수정되면(노드 추가, pod 추가 배포) ReplicaSet이 etcd에 업데이트 된다

     

     

    1. 상태저장: kubernetes의 모든 리소스의 현재 상태를 기록한다
    2. 고가용성: RSM방식으로 장애 발생 시에도 데이터 손실을 방지한다
    3. 일관성: 클러스터의 상태를 항상 정확하게 반영하므로 클러스터의 모든 구성 요소가 동일한 정보를 바탕으로 동작하도록 한다
    4. 변경감지: 데이터의 변경 사항을 감지하고 알림을 제공하여 쿠버네티스의 리소스 상태 변경을 실시간으로 반영하는 데 중요한 역할을 한다
    5. 복원력: 스냅샷 및 복구 기능을 제공하여, 데이터 손실이 발생할 경우 빠르게 복구할 수 있다

    Install etcd

    etcd 설치

    kubeadm을 사용해서 kubernetes를 설치했다면 클러스터에 pod형태로 etcd가 배포된다
    그 외에는 바이너리를 다운로드 받아 직접 설정 및 설치를 진행해야 한다

     

    # etcd 바이너리 설치
    [root@]$ sudo apt  install etcd-client

     

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
      etcd-client
    0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
    Need to get 4575 kB of archives.
    After this operation, 15.3 MB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 etcd-client amd64 3.3.25+dfsg-7ubuntu0.22.04.1 [4575 kB]
    Fetched 4575 kB in 3s (1460 kB/s)
    Selecting previously unselected package etcd-client.
    (Reading database ... 31960 files and directories currently installed.)
    Preparing to unpack .../etcd-client_3.3.25+dfsg-7ubuntu0.22.04.1_amd64.deb ...
    Unpacking etcd-client (3.3.25+dfsg-7ubuntu0.22.04.1) ...
    Setting up etcd-client (3.3.25+dfsg-7ubuntu0.22.04.1) ...
    Processing triggers for man-db (2.10.2-1) ...

     

    #etcd 설치 확인
    [root@]$ etcdctl --version

     

    etcdctl version: 3.3.25
    API version: 2

     

     

    728x90
    반응형

    댓글