노드 배치 및 지역성 최적화

노드 배치 및 지역성 최적화 An architecture diagram generated by Archify. 웹 서버 파드 · 노드 1 · 가용 영역 1 (us-west-2a) 웹 서버 파드 노드 1 캐시 파드 · 노드 2 · 가용 영역 1 (us-west-2a) 캐시 파드 노드 2 DB 파드 (프라이머리) · 노드 2 · 가용 영역 1 (us-west-2a) DB 파드 (프라이머리) 노드 2 웹 서버 파드 · 노드 3 · 가용 영역 2 (us-west-2b) 웹 서버 파드 노드 3 캐시 파드 · 노드 4 · 가용 영역 2 (us-west-2b) 캐시 파드 노드 4 DB 파드 (레플리카) · 노드 4 · 가용 영역 2 (us-west-2b) DB 파드 (레플리카) 노드 4 고빈도 통신 (AZ 내부) 고빈도 통신 (AZ 내부) DB 복제 (크로스 AZ) 가용 영역 1 (us-west-2a) 가용 영역 2 (us-west-2b) Legend Frontend Database

파드 어피니티

  • • 웹 서버와 캐시처럼 통신이 빈번한 쌍은 podAffinity로 같은 존에 모은다
  • • preferredDuringSchedulingIgnoredDuringExecution + topologyKey: topology.kubernetes.io/zone
  • • AZ 내부 통신은 크로스 AZ 대비 지연이 낮고 데이터 전송 요금이 없다

노드 어피니티

  • • nodeAffinity의 node.kubernetes.io/instance-type으로 필요한 인스턴스 유형을 강제한다
  • • requiredDuringScheduling은 필수 조건, preferredDuringScheduling은 선호 조건에 쓴다

토폴로지 스프레드

  • • topologySpreadConstraints의 maxSkew: 1로 존과 노드에 균등 분산한다
  • • whenUnsatisfiable: DoNotSchedule은 엄격, ScheduleAnyway는 완화 정책
  • • DB 복제처럼 내구성이 목적인 트래픽만 의도적으로 크로스 AZ에 둔다