[CKA] 12일차 - HA 설정(ETCD 서버)
- advanced/Devops
- 2022. 9. 2.
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 설치 과정
- master node와 worker 노드를 준비
- install container runtime(e.g. docker) 모든 노드에
- kubeadmin tool설치 모든 노드에
- 마스터 서버 초기화(네트워크 컨넥션이 충분한지 확인)
- worker node를 master node에 넣기
'advanced > Devops' 카테고리의 다른 글
[CKAD] 2일차 - job & cronjob (0) | 2022.09.16 |
---|---|
[CKAD] 1일차 (0) | 2022.09.15 |
[CKA] 11일차 network(2) - CNI, Ingress, CoreDNS (0) | 2022.08.26 |
[CKA] 10일차 - network(1) network 이론 및 network namespace (0) | 2022.08.26 |
[CKA] 9일차 - Storage (2) PV, PVC, SC (0) | 2022.08.22 |