GitHub

https://github.com/Choidongjun0830

클라우드

Cluster High Availability

gogi masidda 2024. 12. 30. 18:04
  • 마스터 노드가 사라져도 워커 노드는 동작한다. 사용자는 실패할 때까지 앱에 접속할 수 있다.
  • 컨테이너나 포드가 고장나면
    • 컨테이너나 포드가 ReplicaSet의 일부라면 ReplicaSetController가 새 포드를 로드하라고 지시해야 한다. 하지만, 마스터의 컨트롤러는 사용이 불가능하다. 
    • 그래서 컨테이너나 포드를 로드하라고 지시할 수 있는 것과 스케줄링할 수 있 것이 없다. 
    • kube-apiserver도 없기 때문에, kubectl도 사용 불가능하다. 
  • 그래서 여러개의 마스터 노드를 사용하는 것을 고려해야 한다.

 

  • High Availability란 단일 실패 지점을 피하기 위해 모든 구성 요소가 여러개가 있는 것
  • 여러개의 마스터 노드가 있는데, 각각의 마스터 노드에 동일한 요청이 가면 안된다. 
    • 그래서 로드 밸런서를 사용하여 각 마스터 노드에 적절하게 분산되어야 한다. 
    • Controller Manager와 Scheduler도 여러개 중 하나만 동작해야 한다.
      • 여러개 중 하나만 동작시키고, 나머지는 StandBy로  

 

ETCD

  • 여러개의 ETCD가 있으면 동일한 데이터를 갖고 있고, 분산된 형태
  • 모든 ETCD에 동일한 데이터가 있는지는 어떻게 확인?
    • READ는 쉽다. WRITE는 다르다.
      • 동시에 2개의 다른 인스턴스에서 WRITE 요청이 오면?
        • 하나의 WRITE 요청만 처리해야 한다.
        • 하나의 ETCD만 리더가 되고, 다른 ETCD들은 팔로워가 되어야 한다.
          • 리더가 쓰면 팔로워들은 복사본을 받아 쓰기 
  •  
  • Stacked Topology
    • 셋업과 관리가 쉽고, 더 적은 서버가 필요하다.
    • 실패동안 위험이 있다.
  • External ETCD Topology
    • 셋업이 어렵고 더 많은 서버가 필요하다. 
    • 위험이 적다.

 

 

728x90

'클라우드' 카테고리의 다른 글

Ingress  (0) 2024.12.30
Cluster Upgrade Process  (0) 2024.12.19
Operating System Upgrade  (0) 2024.12.18
Monitor Kubernetes Cluster  (0) 2024.12.17
Node Selector, Node Affinity  (0) 2024.12.16