콘텐츠로 바로가기

Service Mesh & Ingress Dynamics

마이크로서비스 간의 통신을 지능적으로 중개하고, 클러스터 외부와의 통로를 안전하게 관리하는 하부 통신 인프라와 제어 평면을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

서비스 메시 및 인그레스 컨트롤러(Service Mesh & Ingress Controllers, SMI)는 수천 개의 서비스가 복잡하게 얽힌 마이크로서비스 환경에서, 코드 수정 없이도 통신 지표를 추출하고 보안을 강화하며 트래픽을 정교하게 흐르게 만드는 분산 인프라의 신경 제어망입니다.

학습자는 시스템 외부의 요청을 내부로 유도하는 문지기 역할을 하는 **인그레스 컨트롤러(Ingress Controller)**와, 내부 서비스 간 소통(East-West)을 투명하게 가로채는 **서비스 메시(Service Mesh)**의 수리적 사상을 배웁니다. 특히, 서비스 옆에 바짝 붙어 모든 패킷을 대리 처리하는 사이드카(Sidecar) 패턴의 물리적 동작과, 트래픽 유입 시 인증과 속도 제한을 담당하는 가상 관문의 물리 엔진에 대해 익힙니다. 이를 통해 '통신 실패'가 '비즈니스 실패'로 이어지지 않게 하드웨어적으로 보호하는 하이엔드 연결 방어 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • Sidecar Proxy Mechanics: Envoy 등 프록시를 이용한 네트워크 페이로드 가로채기 물리학
  • Ingress & Gateway API: 클러스터 경계 지점의 계층 7(L7) 트래픽 수리 가공 및 라우팅
  • Mutual TLS (mTLS): 서비스 간 통신 시 자동으로 적용되는 하드웨어 암호화 물리
  • Traffic Shaping: 카나리(Canary), 블루-그린, 회로 차단(Circuit Breaking)의 인프라적 구현
  • Observability in Mesh: 코드 삽입 없는 분산 추적(Tracing) 및 하드웨어 메트릭 수집

Out-of-Scope

  • 쿠버네티스 POD와 서비스의 기본 아키텍처 (07-06-03 영역에서 분담)
  • 구체적인 암호화 알고리즘(RSA, AES)의 수학적 상세 (10-01-XX 영역으로 위임)

Boundaries

  • SMI vs. K8s Networking: 기본 네트워크(07-06-03)가 '길을 뚫어주는 것(L4)'에 집중한다면, SMI는 '그 길에 통행세를 부과하거나 신호등을 세우는 기능(L7)'에 집중하여 구분합니다.

3. Counterexample

  • 단순히 "Istio 설치하기"라 설명하는 것은 SMI 학습이 아닙니다. 왜 사이드카 프록시 도입이 서비스의 처리 지연(Latency)에 물리적으로 수 밀리초(ms)를 추가하는지 하드웨어 오버헤드로 증명할 수 있어야 하며, mTLS를 켰을 때 전체 클러스터의 CPU 사용률이 수리적으로 어떻게 요동치는지 논증하지 못한다면 서비스 메시의 대가를 이해하지 못한 것입니다.

4. Prerequisites

  • Container Orchestration & Kubernetes (Basic): 서비스와 엔드포인트 개념 이해가 필수입니다. (07-06-03 COK)
  • Monitoring, Observability & Distributed Tracing (Recommended): 트레이싱의 필요성 이해가 권장됩니다. (07-05-02 MOD)

5. Learning Map

  1. The Gatekeeper: 외부 세상의 험난한 트래픽을 정제하여 클러스터 내부로 안전하게 들여보냅니다.
  2. Invisible Proxy: 서비스 코드 옆에 '그림자 요원(Sidecar)'을 심어 모든 대화를 기록하고 필터링합니다.
  3. Smart Redirect: 특정 유저의 요청만 신규 버전으로 흘리거나, 고장 난 구간을 수차적으로 물리 차단합니다.
  4. Zero Trust Network: 모든 서비스 간 소통을 암호화하여, 누가 안을 들여다봐도 안전한 물리 요새를 완성합니다.

6. Learning Topics

Basic

Core: 인그레스와 하부 라우팅 (Ingress Mechanics)

  • Why to Learn: 수만 개의 분산된 POD들 중 외부 요청이 정확히 어디로 가야 할지 물리적 주소를 정해주기 위해서입니다.
  • What to Learn:
    • Ingress Controller: 도메인 기반으로 트래픽을 쪼개는 물리 엔진 (Nginx, Kong 등)
    • Path-based Routing: URL 경로(/api/v1 등)에 따른 목적지 물리 매핑
    • SSL/TLS Termination: 입구에서 암호화를 풀고 내부로는 평문 대화를 전달하는 수리 효율화
  • How to Learn:
    • 하나의 공인 IP로 들어온 요청이 호스트 명에 따라 서로 다른 두 개의 서비스로 물리 전파되는 실습
    • 인그레스 설정에서 'Sticky Session'을 통해 특정 유저를 같은 하드웨어 노드로 묶어두는 기제 확인
  • Implement: 특정 도메인을 특정 서비스의 포트로 연결하는 기초 Ingress YAML 명세

Core: 사이드카 패턴과 데이터 평면 (Data Plane Physics)

  • Why to Learn: 서비스 코드 한 줄 안 고치고도 모든 통신 정보를 하드웨어 레벨에서 통제하기 위함입니다.
  • What to Learn:
    • Sidecar Injection: POD 생성 시 프록시 컨테이너를 자동으로 끼워 넣는 물리 수순
    • Envoy Proxy: 메시의 핵심 팔다리 역할을 하는 가벼운 L7 프록시 물리학
    • Traffic Interception: iptables를 조작하여 모든 패킷이 프록시를 통과하게 만드는 기법
  • How to Learn:
    • 사이드카 프록시가 주입된 POD와 아닌 POD의 메모리 점유 수치(UsageUsage) 비교 실습
    • 프록시를 통해 특정 서비스 호출에 '인위적 지연(Latency)'을 주입하여 결함 여파 관찰
  • Implement: Envoy 설정 파일을 통해 간단한 로컬 프록시 라우팅을 테스트하는 실습

Practical

Core: 트래픽 제어와 복원력 (Traffic Shaping)

  • Why to Learn: 신규 배포 시 리스크를 물리적으로 0에 가깝게 줄이고, 장애가 전파되는 것을 하드웨어적으로 막기 위함입니다.
  • What to Learn:
    • Weight-based Routing: 90%는 구버전으로, 10%는 신버전으로 흐르게 하는 수리 배분
    • Outlier Detection: 정상 응답을 안 내뱉는 하드웨어를 자동으로 망에서 물리 격리
    • Retry & Timeout: 상위 계층에서 대신 수행해주는 지능형 재시도 물리학
  • How to Learn:
    • 서비스 메시 설정을 조작하여 '에러율 50%'인 서비스를 호출 체인에서 30초간 물리적으로 제외하는 실습
    • 카나리 배포 시, 유입 트래픽 비율에 따른 서비스별 CPU 부하 전이(TransferTransfer) 분석
  • Implement: 특정 비율로 트래픽을 나누는 Istio VirtualServiceDestinationRule 구성

Advanced

Core: 제어 평면과 제로 트러스트 보안 (Control Plane & Security)

  • Why to Learn: 중앙 지휘소에서 전 클러스터의 정책을 한 번에 하달하고, 모든 통신 구간을 물리적으로 잠그기 위함입니다.
  • What to Learn:
    • Control Plane (istiod): 프록시들에게 지침을 내리는 중앙 뇌의 아키텍처
    • Certificate Management: 서비스별 인증서 발급과 주기적 갱신의 물리 자동화
    • RBAC in Mesh: 어떤 서비스가 어떤 서비스에 말 걸 권한이 있는지 수치로 강제
  • How to Learn:
    • tcpdump로 클러스터 내부 통신 내용을 가로챘을 때, mTLS 적용 전후의 패킷 가독성 비교 실습
    • 대규모 인프라(1000+Nodes1000+ Nodes)에서 메시 정책 전파 속도가 전체 성능에 미치는 물리적 영향력 산출
  • Implement: 특정 레이블을 가진 서비스 간의 통신만 허용하는 AuthorizationPolicy 정의

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Sidecar 주 컨테이너 옆에 밀착하여 기능을 보조하거나 네트워크 트래픽을 대리하는 물리 패턴입니다. 기본 보조 유닛 Proxy / Envoy Plugin 보조 바퀴(Sidecar) 비유 Industry core
Service Mesh 마이크로서비스 간 통신을 관리하기 위해 프록시들로 구성된 하부 인프라 계층입니다. 실무 신경망 Istio / Linkerd API Gateway '코드 밖'의 인프라 Industry core
Ingress 외부의 HTTP/HTTPS 트래픽을 클러스터 내부의 서비스로 노출시키는 물리 관문입니다. 기본 문지기 Controller / L7 NodePort L7 지능형 중계 Industry/Docs core
mTLS 클라이언트와 서버가 서로의 인증서를 확인하고 통신 내용을 암호화하는 상호 보호 물리학입니다. 실무 보안 표준 Auth / SSL TLS 양방향 인증 강제 Industry core

8. References

Primary

Secondary

  • [Istio in Action] Christian Posta — Practical guide to the industry leader.
  • [Service Mesh] Pattani & Kasinadhuni — Architectural overview and patterns.

Industry

  • [Envoy Proxy: Reference Documentation] — The power behind the data plane.
  • [NGINX: Ingress Controller Best Practices] — Edge traffic management.

9. Final Checklist

Primary

  • '인그레스 컨트롤러'가 왜 단순히 포트를 열어주는 것보다 물리적 유연성(Routing)이 수리적으로 높은지 설명 가능한가? (P1)
  • '서비스 메시'가 비즈니스 코드에서 '재시도(Retry)'나 '로깅' 코드를 어떻게 물리적으로 소거시키는지 기술할 수 있는 가? (P5)

Secondary

  • '사이드카' 방식이 유발하는 추가적인 하드웨어 홉(HopHop)에 따른 네트워크 지연 시간 누적분을 수리적으로 산출 가능한가?
  • mTLS 환경에서 서비스 간 호출 시 발생하는 성능 부하를 줄이기 위한 하드웨어 가속(OffloadingOffloading) 기법을 논증할 수 있는 가?

Industry

  • 글로벌 단위의 트래픽 전환 시, '인그레스'와 '서비스 메시'를 계층적으로 엮어 물리적 장애 전파를 차단하는 시나리오를 제안할 수 있는 가? (SFIA)
  • '웹 방화벽(WAF)'을 인그레스 컨트롤러와 물리 결합하여 외부 공격의 패킷을 수치적으로 필터링하는 절차를 분석할 수 있는 가?