Core concept - ETCD

Core concept - ETCD

개인 스터디 목적의 udemy 강의 자료 정리

[ETCD?]

ETCD가 다루는 데이터

ETCD는 key - value 저장 데이터베이스

[Setup]

쿠버네티스 deployment는 scratch로부터 deploy와 kubeadm 툴로부터의 deploy가 있다.

manual

scratch로 클러스터를 setup한다면 마스터 노드에서 직접 ETCD 바이너리를 다운로드, 실행한다.

ETCD 바이너리 다운로드 및 실행 커맨드 옵션

advertise-client-urls 옵션은 ETCD가 설치된 IP주소와 기본 포트인 2379를 기술한다.

이 주소는 etcd 서버와 통신하기 위해 kube-api 서버에 설정되어야하는 URL이다.

kubeadm

kubeadm으로 클러스터를 setup한다면 kubeadm은 ETCD 서버를 kube-system namespace의 pod으로 deploy한다.

※ 쿠버네티스에서 namespace?

더보기 https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/ 쿠버네티스는 동일한 물리 클러스터를 기반으로 하는 여러 가상 클러스터를 지원한다. 이런 가상 클러스터를 네임스페이스라고 한다. 네임스페이스는 클러스터 자원을 (리소스 쿼터를 통해) 여러 사용자 사이에서 나누는 방법이다. -> 같은 역할을 하는 pod, object를 관리가 용이하도록 그룹화함 kubectl get namespace NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d 쿠버네티스는 처음에 네 개의 초기 네임스페이스를 갖는다.

kube-system namespace의 pod을 조회시 etcd-masater pod을 확인할 수 있다.

etcd-masater pod 내에서 etcdctl get 커맨드 실행시 쿠버네티스에서 저장한 데이터 키 등을 확인할 수 있다.

쿠버네티스는 /registry 디렉토리 내에 데이터를 저장한다.

여러 마스터 노드가 존재하고 각 노드마다 ETCD가 존재할 경우 ETCD 실행 옵션 initial-cluster으로 다른 ETCD url, 포트 정보를 명시한다.

from http://wherewereyou.tistory.com/310 by ccl(A) rewrite - 2021-08-13 17:00:20