본문 바로가기
클라우드/Cilium

Istio보다 Cilium이 더 나은 선택이 되는 이유 — eBPF로 네트워크와 서비스 메시를 하나로

by gasbugs 2026. 7. 22.

결론부터 말하면 Cilium이 Istio보다 항상 우월한 것은 아니다. 하지만 Kubernetes 네트워킹, 보안 정책, 로드밸런싱, 관측성과 서비스 메시를 하나의 플랫폼으로 통합하려는 조직이라면 Cilium이 더 단순하고 일관된 선택이 될 수 있다.

서비스 메시를 검토하다 보면 흔히 “Istio와 Cilium 중 무엇을 선택해야 할까?”라는 질문을 만납니다.

 

이 질문에는 먼저 전제가 필요합니다. Istio와 Cilium은 출발점부터 다릅니다. Istio는 서비스 간 통신을 제어하는 서비스 메시로 출발했고, Cilium은 eBPF 기반 Kubernetes CNI와 네트워크 보안 플랫폼으로 출발해 서비스 메시 영역까지 확장했습니다.

 

따라서 둘은 완전히 같은 제품이 아닙니다. Istio는 CNI 위에 올라가는 서비스 메시이고, Cilium은 CNI 자체이면서 네트워크 정책, kube-proxy 대체, 관측성과 L7 프록시 기능까지 제공할 수 있습니다.

 

그럼에도 특정 환경에서는 Cilium이 더 나은 선택이 됩니다. 특히 Kubernetes 중심 인프라에서 이미 Cilium을 CNI로 쓰고 있고, 트래픽 대부분이 L3·L4 정책으로 충분하며, 필요한 구간에만 L7 기능을 적용하려는 경우입니다.

 

이 글은 “Cilium이 무조건 Istio보다 좋다”는 주장이 아닙니다. 어떤 조건에서 Cilium의 통합 구조가 실질적인 장점이 되고, 어떤 조건에서는 여전히 Istio가 더 적합한지 구분하는 것이 목적입니다.


먼저 정리할 것: Cilium과 Istio는 무엇이 다른가

두 제품의 가장 큰 차이는 담당 범위입니다.

비교 항목 Cilium Istio
출발점 eBPF 기반 CNI, 네트워킹과 보안 서비스 메시와 애플리케이션 트래픽 제어
기본 데이터 경로 eBPF 기반 L3·L4 처리 Envoy 사이드카 또는 ambient의 ztunnel
L7 처리 필요한 트래픽을 노드 로컬 Envoy로 전달 사이드카 Envoy 또는 waypoint Envoy 사용
Kubernetes 서비스 처리 kube-proxy를 eBPF로 대체 가능 기존 CNI와 Kubernetes 서비스 네트워크 위에서 동작
네트워크 정책 Kubernetes NetworkPolicy와 CiliumNetworkPolicy 주로 메시 내부 인증·인가와 트래픽 정책
관측성 Hubble로 네트워크 흐름과 정책 결과를 통합 관찰 메트릭, 분산 추적과 액세스 로그 중심
주요 강점 네트워크부터 메시까지 하나의 운영 모델 성숙한 L7 트래픽 관리와 서비스 메시 기능

Cilium 공식 문서는 IP, TCP와 UDP 같은 네트워크 처리를 eBPF 데이터 경로에서 수행하고, HTTP, Kafka, gRPC와 DNS 같은 애플리케이션 프로토콜은 Envoy 같은 프록시로 해석한다고 설명합니다. 즉 Cilium 서비스 메시가 “프록시를 전혀 사용하지 않는 메시”라는 뜻은 아닙니다. Cilium Service Mesh 공식 문서

 

Istio는 현재 두 가지 데이터 플레인 방식을 제공합니다. 전통적인 sidecar 모드는 각 Pod 옆에 Envoy를 배치하고, ambient 모드는 노드별 L4 프록시인 ztunnel과 필요할 때 사용하는 namespace 단위 L7 waypoint 프록시로 기능을 나눕니다. Istio 데이터 플레인 모드 공식 문서

 

이 차이를 이해해야 “사이드카가 없으니 Cilium이 무조건 가볍다”거나 “eBPF를 쓰니 L7도 전부 커널에서 처리한다”는 과장을 피할 수 있습니다.


이유 1: CNI와 서비스 메시를 하나의 플랫폼으로 줄일 수 있다

Cilium의 가장 현실적인 장점은 단순한 패킷 처리 성능보다 통합입니다.

 

일반적인 Kubernetes 환경에서 별도 제품을 조합하면 다음과 같은 구성요소가 생길 수 있습니다.

  • CNI 플러그인
  • kube-proxy
  • Kubernetes NetworkPolicy 구현체
  • 서비스 메시
  • Ingress 또는 Gateway API 컨트롤러
  • 네트워크 흐름 관측 도구

Cilium은 이 가운데 여러 역할을 한 플랫폼에서 담당할 수 있습니다. CNI와 네트워크 정책은 기본이고, eBPF 기반 kube-proxy 대체, Gateway API, Hubble 관측성과 선택적 L7 프록시를 함께 운영할 수 있습니다.

 

Cilium의 kube-proxy 대체 모드는 ClusterIP, NodePort, LoadBalancer와 externalIPs 서비스 처리를 eBPF로 구현합니다. Cilium kube-proxy replacement 공식 문서

 

이 통합이 주는 이점은 “프로세스 수가 무조건 적다”는 단순한 이야기가 아닙니다. 장애를 분석할 때 CNI, 서비스 NAT, 네트워크 정책과 서비스 메시의 경계를 여러 제품 사이에서 추적해야 하는 부담이 줄어든다는 의미입니다.

 

특히 플랫폼 팀이 Kubernetes 네트워크 전체를 책임진다면 데이터 경로, 정책 모델과 관측 도구가 한 제품군으로 연결되는 것은 운영상 큰 장점입니다.


이유 2: 모든 트래픽에 L7 프록시를 붙이지 않아도 된다

서비스 메시를 도입했다고 해서 모든 통신에 HTTP 헤더 기반 라우팅, 재시도와 분산 추적이 필요한 것은 아닙니다.

 

데이터베이스 연결, 내부 TCP 프로토콜, 단순 서비스 검색과 다수의 백엔드 통신은 L3·L4 보안 정책과 로드밸런싱만으로 충분할 수 있습니다. 이런 트래픽까지 Pod마다 L7 프록시를 통과시키면 프록시 수, 설정 배포 대상과 리소스 예약량이 애플리케이션 복제본 수에 따라 늘어납니다.

 

Cilium은 L3·L4 경로를 eBPF로 처리하고, HTTP 정책이나 Gateway API처럼 L7 해석이 필요한 트래픽만 노드 로컬 Envoy로 보냅니다. Cilium의 L7 정책은 노드 로컬 Envoy 인스턴스를 통과하며, Envoy는 Cilium agent 안에서 실행하거나 별도 DaemonSet으로 운영할 수 있습니다. Cilium Envoy 공식 문서, Cilium L7 Policy 공식 문서

 

이 구조는 다음 조건에서 유리합니다.

  • 서비스 수와 Pod 복제본 수가 많다.
  • 대부분의 통신은 L4 정책으로 충분하다.
  • 일부 API와 외부 진입점에만 L7 기능이 필요하다.
  • 애플리케이션 Pod의 사이드카 주입과 재시작을 줄이고 싶다.

다만 비교 대상이 Istio sidecar일 때 장점이 가장 큽니다. Istio ambient 역시 각 Pod의 사이드카를 없애고 노드별 ztunnel과 선택적 waypoint로 L4와 L7을 분리합니다. Istio 공식 문서도 ambient가 sidecar 방식의 리소스 비용과 운영 부담을 줄이기 위해 설계됐다고 설명합니다. Istio ambient 개요

 

따라서 2026년의 올바른 비교는 “Cilium 대 Istio sidecar”에서 끝나지 않습니다. “Cilium의 eBPF+노드 Envoy 구조와 Istio ambient의 ztunnel+waypoint 구조 중 우리 조직에 무엇이 더 잘 맞는가”를 봐야 합니다.


이유 3: 네트워크 정책과 관측성이 같은 데이터에서 출발한다

Kubernetes 네트워크 장애에서 가장 답하기 어려운 질문은 단순합니다.

이 요청은 어디에서 어디로 갔고, 허용됐는가, 거부됐다면 어떤 정책 때문인가?

Cilium의 Hubble은 Cilium과 eBPF 데이터 경로에서 관측한 흐름을 사용합니다. 노드, 클러스터와 ClusterMesh 범위에서 서비스 간 흐름을 확인할 수 있고, Hubble UI는 L3·L4뿐 아니라 조건이 충족되면 L7 서비스 맵도 제공합니다. Hubble 공식 문서

 

이 통합의 장점은 보안 정책과 관측 결과가 서로 다른 수집 계층에 있지 않다는 것입니다.

  • 어떤 Cilium 보안 identity가 통신했는가
  • 어떤 포트와 프로토콜을 사용했는가
  • 정책에 의해 전달되거나 거부됐는가
  • DNS 또는 HTTP 레벨에서 어떤 흐름이 발생했는가
  • 어느 노드와 워크로드에서 문제가 발생했는가

이 정보를 같은 운영 도구에서 연결할 수 있습니다.

 

Istio도 메트릭, 분산 추적과 액세스 로그를 풍부하게 제공합니다. 특히 애플리케이션 레벨의 지연, 오류율과 호출 관계를 분석하는 데 강합니다. Istio Observability 공식 문서

 

차이는 관측의 시작점입니다. Istio의 중심은 프록시가 본 서비스 요청이고, Hubble의 중심은 CNI와 eBPF 데이터 경로가 본 네트워크·보안 흐름입니다. 네트워크 정책 디버깅이 중요한 플랫폼 팀에는 Hubble의 접근이 더 직접적일 수 있습니다.


이유 4: Kubernetes Gateway API 중심으로 운영 모델을 맞출 수 있다

오래된 Kubernetes 인프라는 제품마다 서로 다른 Ingress annotation과 전용 CRD를 사용했습니다. 그 결과 같은 HTTP 라우팅이라도 플랫폼을 바꾸면 설정을 다시 작성해야 했습니다.

 

Cilium은 Kubernetes Gateway API를 데이터 플레인과 연결합니다. 현재 안정 문서는 Gateway API v1.4.1의 GatewayClass, Gateway, HTTPRoute, GRPCRoute와 ReferenceGrant 등을 지원하며 Core conformance test를 통과했다고 명시합니다. Cilium Gateway API 공식 문서

 

플랫폼 팀이 Gateway API를 표준 진입점으로 삼으면 다음 영역을 하나의 정책 언어에 가깝게 정리할 수 있습니다.

  • 외부 Ingress
  • 서비스 간 HTTP 라우팅
  • gRPC 라우팅
  • 트래픽 분할
  • 헤더 수정
  • TLS 종단

물론 Istio도 Gateway API와 ambient waypoint를 적극적으로 사용합니다. 따라서 Gateway API 지원 자체만으로 Cilium의 승리를 선언할 수는 없습니다.

 

Cilium이 더 나은 경우는 이미 Cilium을 CNI와 로드밸런서로 사용하면서 같은 플랫폼에서 Gateway API까지 이어가려는 경우입니다. 새로운 메시 전용 API와 별도 데이터 플레인을 추가하는 대신 기존 네트워크 운영 모델을 확장할 수 있기 때문입니다.


이유 5: 플랫폼 팀이 관리해야 할 경계를 줄일 수 있다

Istio sidecar 환경에서는 애플리케이션 배포와 프록시 생명주기가 강하게 연결됩니다. 사이드카 주입 설정이 바뀌면 Pod 재시작이 필요할 수 있고, 각 워크로드의 CPU와 메모리 요청량에 프록시를 반영해야 하며, 애플리케이션 문제와 Envoy 문제를 함께 살펴야 합니다.

 

Cilium의 L7 Envoy는 노드 단위 공유 구성요소로 실행할 수 있습니다. 애플리케이션 복제본마다 프록시 컨테이너를 붙이지 않으므로 플랫폼 구성요소의 생명주기를 애플리케이션 Pod와 분리하기 쉽습니다.

 

하지만 공유 프록시에는 반대쪽 트레이드오프도 있습니다.

  • 노드 프록시 장애의 영향 범위가 커질 수 있다.
  • 여러 워크로드의 L7 트래픽이 같은 프록시 자원을 경쟁할 수 있다.
  • 노드 단위 용량 계획과 장애 격리가 필요하다.
  • L7 트래픽은 결국 Envoy 처리 비용을 지불한다.

따라서 “사이드카가 없으니 비용이 0”이 아니라 “비용과 운영 단위가 Pod별에서 노드별로 이동한다”고 이해하는 편이 정확합니다.

 

Istio ambient도 비슷하게 프록시 생명주기를 플랫폼 팀 쪽으로 이동시킵니다. 공식 비교 문서는 ambient에서 워크로드를 메시로 추가할 때 Pod 재시작이 필요하지 않고, waypoint를 일반 Kubernetes Deployment처럼 확장할 수 있다고 설명합니다. Istio sidecar와 ambient 비교

 

결국 Cilium의 진짜 우위는 “사이드카가 없다” 하나가 아니라, 사이드카 없는 구조를 CNI와 네트워크 정책까지 포함한 단일 플랫폼에서 운영할 수 있다는 점입니다.


그렇다면 Istio가 더 나은 경우는 언제일까

Cilium의 장점을 제대로 말하려면 Istio가 더 나은 조건도 분명히 해야 합니다.

1. 성숙한 mTLS와 서비스 identity가 최우선일 때

Istio는 표준 mTLS, 인증과 인가를 서비스 메시의 핵심 기능으로 오랫동안 운영해 왔습니다. Kubernetes 밖의 VM, 여러 클러스터와 서로 다른 CNI를 포함하는 환경에서도 일관된 메시를 구성하는 것이 주요 목표입니다. Istio를 선택하는 이유

 

반면 Cilium 1.19.6 공식 문서에서 Mutual Authentication은 베타이며 기능이 아직 완성되지 않았다고 명시돼 있습니다. 단일 trust domain의 multi-cluster 구성도 현재 지원하지 않고, 외부 mTLS 솔루션과의 호환에도 제한이 있습니다. Cilium Mutual Authentication 제한 사항

 

mTLS와 워크로드 identity가 구매 결정의 첫 번째 기준이라면 Istio가 더 보수적인 선택입니다.

2. 복잡한 L7 트래픽 제어가 핵심일 때

Istio는 VirtualService와 DestinationRule을 중심으로 다음 기능을 폭넓게 제공합니다.

  • 헤더와 URI 기반 라우팅
  • 비율 기반 canary와 A/B 테스트
  • 요청별 timeout과 retry
  • circuit breaking과 outlier detection
  • fault injection
  • traffic mirroring
  • 외부 서비스와 VM을 포함한 ServiceEntry

이 기능은 오랜 기간 Envoy 데이터 플레인과 함께 운영돼 왔습니다. Istio Traffic Management 공식 문서

 

Cilium도 Gateway API와 CiliumEnvoyConfig로 L7 트래픽 제어 범위를 넓히고 있지만, 복잡한 애플리케이션 트래픽 정책과 Envoy 확장 생태계가 핵심이라면 Istio가 더 익숙하고 풍부합니다.

3. CNI와 독립적인 메시가 필요할 때

Cilium의 통합은 장점인 동시에 결합입니다. Cilium 서비스 메시 기능은 Cilium CNI와 eBPF 데이터 경로를 전제로 합니다.

 

반대로 Istio는 CNI와 분리된 서비스 메시이므로 클러스터마다 CNI가 다르거나, Kubernetes와 VM을 함께 묶거나, 특정 네트워크 구현에 종속되지 않아야 할 때 유리합니다.

4. Istio ambient가 이미 요구사항을 만족할 때

“사이드카가 싫다”는 이유만으로 기존 Istio를 버릴 필요는 없습니다.

 

Istio ambient는 노드별 ztunnel에서 mTLS, L4 authorization과 telemetry를 처리하고, L7이 필요한 namespace에 waypoint를 추가합니다. 기존 Istio 정책과 운영 경험을 유지하면서 sidecar 비용을 줄이는 것이 목적이라면 ambient 전환이 Cilium 재구축보다 현실적일 수 있습니다. Istio ambient 공식 개요


의외의 답: Cilium과 Istio를 함께 쓸 수도 있다

두 제품을 반드시 하나만 선택해야 하는 것은 아닙니다.

 

Cilium은 고성능 CNI, eBPF kube-proxy replacement, NetworkPolicy와 Hubble을 담당하고, Istio는 mTLS, L7 트래픽 관리와 서비스 메시를 담당하도록 구성할 수 있습니다.

 

Cilium 공식 문서에는 Istio sidecar와 ambient 모드를 Cilium 네트워크 위에서 사용하는 통합 방법이 별도로 제공됩니다. Cilium과 Istio 통합 공식 문서

 

이 구성은 다음 상황에서 타당합니다.

  • Cilium 네트워킹과 Hubble은 유지하고 싶다.
  • Istio의 성숙한 mTLS와 L7 정책이 필요하다.
  • 한 번에 네트워크와 메시를 모두 교체하고 싶지 않다.
  • 조직의 네트워크 팀과 애플리케이션 플랫폼 팀이 역할을 분리한다.

물론 구성요소가 늘어나므로 장애 지점과 업그레이드 조합도 많아집니다. “둘 다 쓰면 최고”가 아니라, 통합으로 얻는 기능이 운영 복잡도보다 클 때만 선택해야 합니다.


선택 기준을 한 장으로 정리하면

요구사항 Cilium이 더 적합 Istio가 더 적합
이미 Cilium CNI를 사용 중 예 별도 메시 계층 추가 필요
kube-proxy 대체와 네트워크 정책 통합 강점 담당 범위 아님
L3·L4 중심, 일부만 L7 강점 ambient도 좋은 대안
Hubble 기반 네트워크·보안 흐름 분석 강점 프록시 중심 관측성 제공
복잡한 retry, timeout, fault와 mirroring 제한을 검토해야 함 강점
성숙한 서비스 mTLS와 authorization 베타 상태를 검토해야 함 강점
VM과 이기종·멀티클러스터 메시 제한을 검토해야 함 강점
CNI 독립성 낮음 높음
Gateway API 중심 Kubernetes 운영 강점 역시 지원, 요구 기능 비교 필요
Pod별 sidecar 제거 기본 구조 ambient로 가능

실제 도입 전에는 무엇을 측정해야 할까

제품 소개 자료만 보고 결정하면 “eBPF니까 빠르다” 또는 “Envoy니까 무겁다”는 단순한 결론에 빠지기 쉽습니다.

 

동일한 워크로드와 정책으로 작은 검증 환경을 만들고 다음 항목을 측정하는 편이 좋습니다.

성능과 비용

  • L4와 L7 트래픽 각각의 p50·p95·p99 지연 시간
  • 초당 요청 수와 연결 수
  • 노드와 Pod별 CPU·메모리 사용량
  • Envoy, ztunnel과 waypoint의 리소스 사용량
  • 장애와 롤링 업데이트 중 연결 유지 여부

운영 복잡도

  • 설치되는 DaemonSet, Deployment와 CRD 수
  • 애플리케이션 배포 시 sidecar 또는 annotation 의존성
  • 정책 변경이 실제 데이터 플레인에 반영되는 시간
  • 업그레이드 시 Pod 재시작과 서비스 영향
  • 장애 원인을 찾는 데 필요한 도구와 평균 시간

기능 적합성

  • 필요한 L7 protocol과 라우팅 규칙 지원 여부
  • mTLS, identity와 authorization 요구사항
  • multi-cluster, multi-network와 VM 지원 여부
  • Gateway API conformance와 필요한 확장 기능
  • 감사 로그와 분산 추적 요구사항

최종 결정은 벤치마크 숫자 하나가 아니라 팀이 실제로 운영할 기능과 실패 모드에서 내려야 합니다.


결론: Cilium의 우위는 속도보다 통합에 있다

Istio보다 Cilium이 더 나은 이유를 한 문장으로 줄이면 다음과 같습니다.

Kubernetes 네트워크의 시작점인 CNI부터 보안 정책, 서비스 로드밸런싱, 관측성과 선택적 L7 처리까지 하나의 eBPF 기반 운영 모델로 연결할 수 있기 때문이다.

이 장점은 이미 Cilium을 사용하고 있고, Kubernetes가 인프라의 중심이며, L3·L4 트래픽이 많고, 필요한 곳에만 L7 기능을 적용하려는 조직에서 가장 큽니다.

 

반대로 성숙한 mTLS, 복잡한 L7 트래픽 관리, VM과 이기종 멀티클러스터가 핵심이라면 Istio가 더 적합할 수 있습니다. Istio ambient가 sidecar의 단점을 상당 부분 줄였다는 사실도 함께 봐야 합니다.

 

그래서 질문은 “Cilium이 Istio보다 빠른가?”에서 끝나면 안 됩니다.

 

우리 조직이 실제로 답해야 할 질문은 이것입니다.

네트워크와 서비스 메시를 한 플랫폼으로 통합하는 것이 더 중요한가, 아니면 네트워크와 독립된 성숙한 L7 서비스 메시가 더 중요한가?

첫 번째라면 Cilium이 유력합니다. 두 번째라면 Istio가 여전히 강합니다. 그리고 두 요구가 동시에 크다면 Cilium CNI 위에 Istio를 운영하는 조합도 충분히 검토할 가치가 있습니다.


참고한 공식 자료