234. Design a Kubernetes Cluster

쿠버네티스 클러스터를 잘 구성하려면?

여러가지 질문 사항

목적에 따라 구성이 달라진다. 

교육 공부용으로 한다면 싱글 노드 

개발, 테스트용으로 한다면 멀티노드, 퍼블릭 클라우드 사용

 

Hosting Production Applications

 

Cloud or OnPrem?

클라우드를 쓸 건지 온프레미스를 쓸 것 인지

Storage

Nodes

 

Master Nodes

규모가 큰 클러스터에서는 etcd를 분리한다.

여러가지 요소들이 있다. 

간단한 프로비저닝을 해보자


235.  Choosing Kubernetes Infrastructure

쿠버네티스는 여러 곳에서 배포될 수 있다. 

 

Local 배포

리눅스 운영체제에서 배포가능, window에서는 가상머신 사용해서 배포해야한다. 

미니큐브, kubeadm 이 도와준다. 

turnkey , 호스티드 솔루션으로 나뉜다. 

여러 턴키 솔루션이 존재 

 

마스터 노드 하나 워커 노드 두개의 클러스터를 구성해보자 


236. Configure High Availability

마스터 노드가 터지면 어떻게 될까 ?

안된다. 

고가용성을 위해서는 마스터 노드 두개가 필요하다.

이때까지 마스터 노드 1개, 워커 노드 2개 클러스터를 다뤄왔다. 

마스터 노드에 집중해보자. 여러 컴포넌트들이 존재한다.

고가용성을 위해서는 똑같은 마스터 노드 두개를 설치한다. 

kube api server는 제일 통신을 많이 하는 곳 

로드 밸런서를 배치하고 적당히 통신 시킨다.

컨트롤러 매니저, 스케쥴러는 어떨까? 

파드의 상태를 확인하는 컴포넌트들이다.

액티브 모드와 스탠바이 모드로 나뉘어서 동작한다. 

리더 정하기 옵션

지속 시간도 정할 수 있다. 

엔드포인드를 통해서 액티브로 보낸다.

 

 

 

etcd는 어떨까?

etcd 를 호스트에 같이 담으면 설치, 관리 용이하지만 리스크가 존재한다. 

External ETCD Topology

etcd를 외부 서버에 빼서 운영한다. 

설치가 어렵긴하다. 

 

/etc/systemd/system/kube-apiserver.service 를 통해서 어느 ETCD를 사용하는지 알 수 있다. 

마스터 노드 두개 + 로드밸런서 하나

총 다섯개의 노드가 필요하다. 

 


237. ETCD in HA

etcd ha 모드를 배워보자

What is ETCD? 

 

etcd는 분산되 키-값 저장소이다 .

 

Key-value store

관계형 데이터 베이스

키-값 저장소는 doc, 페이지 단위로 데이터를 저장한다. 

한 페이지의 변화가 다른 페이지에 영향을 끼치지는 않는다. 

 

distributed

etcd 세대가 돌아가고 있다. 세 노드의 동일성을 어떻게 보장하는가? 

읽기 같은 경우 쉽다.

동시 두 곳에서 쓰기 작업이 일어난다면?

한쪽은 john, 한쪽은 joe 가 들어온다면?

모든 노드에서 똑같이 쓰기 작업이 가능한 것은 아니다. 

하나의 노드만 쓰기 작업을 허락한다. 

다른 노드로 쓰기 작업이 들어오면 리더 노드로 넘긴다. 

그 후 리더노드가 데이터를 나머지 두 노드로 보낸다. 

 

Leader Election - RAFT

랜덤 타이머를 사용해서 선출

최소 노드 개수 quorum

허용치가 있다. 

설치하기 

etcdctl 명령어

 

+ Recent posts