본문 바로가기
Computer Science/KUBERNETES

ETCD Cluster - Certified Kubernetes Administrator(CKA)

by sy.cho__ 2020. 10. 19.

본 게시글은 CKA 취득 위해 공부한 내용 정리하기 위해 작성한 글이며 첨부한 자료 및 내용은 Udemy에서 제공하는 CKA강의를 활용하였습니다.  (www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)

저작권 등에 문제가 생길 시 게시글을 내리도록 하겠습니다.


ETCD란?

Key - Value형태의 데이터를 담고 있는 데이터 베이스. 보안성, 속도, Simple함이 특징이다. 

여기서 Key - Value은 Dictionary 데이터 타입으로 아래와 같은 예시로 설명할 수 있다. 

ETCD를 설치하면 Default로 2379 포트로 지정되며 실행 방법은 아래와 같다.

./etcd

신규 데이터를 추가하는 방법은 아래와 같다. 

./etcdctl set key1 value1

다음 명령어로 데이터를 불러올 수 있다. 

./etcdctl get key1

#Result
value1

ETCD Cluster는 Kubernetes 내 Nodes, Pods, Configs, Secrets, Accounts, Roles, Bindings등의 데이터를 저장합니다. 

Node를 추가/수정하거나 Pod를 새로 Deploy하고 ReplicaSets를 업데이트하면 관련 데이터는 ETCD에 저장된다.

 ETCD 설치방법

- Scratch 

binaries and configuring ETCD 설치 (Master Node에 설치)

 wget -q --https-only \ "https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz"

설치하게 되면 아래와 같이 certificate이 등록된다. 

Default 포트는 2379며, 위 그림의 advertise-client-urls는 kube-api가 etcd와 통신할 때 사용하는 주소다. 

- kubeadm 

kubeadm을 통해 ETCD를 setup한다면 kubeadm이 POD 형태로 kube-system namespace에 ETCD Server를 배포한다. 

다음 명령어를 입력하면 kubernetes에 저장되어 있는 모든 key 리스트를 확인할 수 있다. 

kubectl exec etcd-master –n kube-system etcdctl get / --prefix –keys-only


HA(High Availability) Environment에서 Master 노드는 여러개가 될 수 있으며 이에 따라 ETCD로 여러개가 될 수 있다. 이때 ETCD 사이의 Setting를 확인하기 위해 아래와 같이 initial-cluster option에 각 ETCD service를 등록할 수 있다. 

반응형