[CKA] 12일차 - HA 설정(ETCD 서버)

Configure High Availability

마스터 노드가 2개라면 하나는 active이고 하나는 standby 상태로 됨

active/standby는 leader election 알고리즘에 의해서 선출됨

kube-controller-manager --leader-elect true(default: true)

ETCD HA 설정 방법

ETCD는 여러 대를 동시에 실행해서 HA 구성을 할 수 있는데,

write는 하나의 노드에서만 할 수 있고 다른 노드에서는 읽기만 할 수 있음

만약 write요청이 follower노드로 들어오면 leader 노드로 넘겨줌

쓰기가 완료되었다고 보는 시점은 다른 멤버들로부터 동의를 얻은 때임

RAFT protocol(Leader 선출 프로토콜)

랜덤타이머를 각 노드마다 가지고 있다가, 타이머가 시간이 다 된 노드가
다른 노드에 신호를 보냈을 때 잘 돌아오면 마스터가 됨.
마스터에게 일정 시간이상 신호를 못 받으면 리더 재선출을 함

쓰기 완료 시점

Quorum(N/2+1)
Majority에 쓰기 완료 되면, 쓰기 완료로 봄(과반수)

ETCD 설치

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

  • ETCD 사용법
    export ETCDCTL_API=3
    etcdctl put name john
    etcdctl get name
    etcdctl get / --profix --keys-only

kubernetes cluster 설치 과정

  1. master node와 worker 노드를 준비
  2. install container runtime(e.g. docker) 모든 노드에
  3. kubeadmin tool설치 모든 노드에
  4. 마스터 서버 초기화(네트워크 컨넥션이 충분한지 확인)
  5. worker node를 master node에 넣기

댓글

Designed by JB FACTORY