아키텍처

지원 버전: Cilium 1.16+, Kubernetes 1.28+ 마지막 업데이트: 2026년 2월 22일

개요

Cilium Service Mesh의 아키텍처는 전통적인 사이드카 기반 서비스 메시와 근본적으로 다릅니다. eBPF를 활용하여 커널 레벨에서 L3/L4 트래픽을 처리하고, 노드당 하나의 공유 Envoy 프록시로 L7 기능을 제공합니다. 이 장에서는 Cilium Service Mesh의 핵심 아키텍처 컴포넌트와 동작 방식을 자세히 설명합니다.

전체 아키텍처

spinner

eBPF 데이터패스

eBPF란?

eBPF(extended Berkeley Packet Filter)는 Linux 커널 내에서 샌드박스된 프로그램을 실행할 수 있게 해주는 기술입니다. 커널을 수정하지 않고도 네트워크, 보안, 관찰성 기능을 구현할 수 있습니다.

spinner

eBPF 훅 포인트

Cilium은 여러 eBPF 훅 포인트를 활용합니다:

훅 포인트
위치
용도

XDP (eXpress Data Path)

NIC 드라이버

초고속 패킷 처리, DDoS 방어

TC (Traffic Control)

네트워크 스택 진입점

패킷 필터링, 리다이렉션

Socket Operations

소켓 레벨

소켓 연결 가속

cgroup

프로세스 그룹

리소스 제어, 정책 적용

spinner

L3/L4 처리

eBPF에서 L3/L4 처리는 다음과 같이 이루어집니다:

spinner

eBPF 맵 구조

kube-proxy 대체

Cilium의 eBPF 기반 로드 밸런서는 kube-proxy를 완전히 대체할 수 있습니다:

kube-proxy vs Cilium eBPF 비교:

기능
kube-proxy (iptables)
Cilium eBPF

규칙 복잡도

O(n) - 서비스 수에 비례

O(1) - 해시 맵 조회

연결 추적

conntrack 모듈

eBPF CT 맵

DSR 지원

제한적

완전 지원

세션 어피니티

iptables 기반

Maglev 해싱

성능

중간

높음

노드당 Envoy 프록시

사이드카 vs 노드 프록시

spinner

Envoy 배포 방식

Cilium은 노드당 하나의 Envoy 프록시를 DaemonSet으로 배포합니다:

L7 처리 흐름

spinner

Envoy 리소스 설정

CRD 모델

Cilium CRD 구조

spinner

CiliumEnvoyConfig

CiliumEnvoyConfig는 네임스페이스 범위의 Envoy 설정을 정의합니다:

CiliumClusterwideEnvoyConfig

클러스터 전체에 적용되는 Envoy 설정:

CiliumNetworkPolicy (L7)

L7 규칙이 포함된 네트워크 정책:

Cilium Agent와 서비스 메시

Cilium Agent 역할

spinner

Agent 설정

서비스 ID와 SPIFFE

Cilium Identity

Cilium은 각 워크로드에 고유한 ID를 할당합니다:

spinner

Identity 기반 정책

SPIFFE 통합

SPIFFE(Secure Production Identity Framework for Everyone)를 통한 워크로드 ID:

spinner

SPIFFE ID 형식:

패킷 흐름 분석

Pod-to-Pod 통신 (동일 노드)

spinner

Pod-to-Pod 통신 (다른 노드)

spinner

L7 처리가 필요한 경우

spinner

Istio 사이드카 아키텍처 비교

아키텍처 비교 표

측면
Cilium Service Mesh
Istio Sidecar

프록시 위치

노드당 1개

Pod당 1개

프록시 유형

eBPF + Envoy

Envoy only

L4 처리

커널 (eBPF)

사용자 공간 (Envoy)

L7 처리

사용자 공간 (Envoy)

사용자 공간 (Envoy)

메모리 사용

~100MB/노드

~50MB/Pod

CPU 사용

낮음

중간-높음

지연 시간

0.1-0.5ms

1-3ms

설정 모델

CiliumEnvoyConfig

VirtualService/DestinationRule

mTLS 구현

eBPF/WireGuard

Envoy

Injection

불필요

사이드카 인젝션 필요

지연 시간 분석

spinner

리소스 효율성 분석

100개 Pod 클러스터 기준:

spinner

확장성 고려사항

eBPF 맵 크기

대규모 클러스터 설정

노드 Envoy 스케일링

다음 단계

  • 트래픽 관리: L7 라우팅과 트래픽 제어 구성

  • 보안: mTLS와 L7 네트워크 정책 설정

  • 관찰성: Hubble을 통한 서비스 메시 모니터링

참고 자료

마지막 업데이트