Cilium 딥다이브

개요

이 섹션은 Cilium의 핵심 개념과 기술에 대한 포괄적인 이해를 제공합니다. Cilium의 아키텍처, eBPF 기술, 네트워킹 모델, 보안 기능 등을 심층적으로 탐구합니다.

지원 버전: Cilium 1.17, 1.18 Kubernetes 호환성: 1.32 이상 마지막 업데이트: 2026년 2월 23일

Cilium 1.18의 주요 개선사항

Cilium 1.18은 다음과 같은 주요 기능 개선과 새로운 기능을 제공합니다:

네트워킹 개선

  • 향상된 BGP 컨트롤 플레인: 더욱 유연하고 확장 가능한 BGP 구성

  • 개선된 멀티클러스터 라우팅: 클러스터 간 통신 성능 최적화

  • 향상된 서비스 메시 통합: Envoy 프록시와의 더 나은 통합

보안 강화

  • 향상된 네트워크 정책: 더 세밀한 정책 제어 및 성능 개선

  • 개선된 암호화 옵션: WireGuard 및 IPsec 암호화 성능 최적화

관찰성 개선

  • Hubble 개선: 더 풍부한 메트릭 및 추적 정보

  • 향상된 Prometheus 통합: 새로운 메트릭 및 대시보드

  • 개선된 플로우 로깅: 더 상세한 네트워크 플로우 정보

성능 최적화

  • eBPF 프로그램 최적화: 더 빠른 패킷 처리

  • 메모리 사용량 개선: 대규모 클러스터에서의 리소스 효율성 향상

  • CPU 사용량 최적화: 더 낮은 오버헤드

소개

Cilium은 Kubernetes, Docker, Mesos와 같은 Linux 컨테이너 관리 플랫폼을 위한 오픈 소스 네트워킹, 보안 및 관찰성 솔루션입니다. Cilium은 eBPF(extended Berkeley Packet Filter) 기술을 기반으로 하여 전통적인 Linux 네트워킹 접근 방식보다 더 강력하고 효율적인 네트워킹 및 보안 기능을 제공합니다.

eBPF란?

eBPF는 Linux 커널 내에서 샌드박스 가상 머신처럼 작동하는 기술로, 커널 코드를 수정하지 않고도 커널 내에서 프로그램을 안전하게 실행할 수 있게 해줍니다. 이를 통해 네트워크 패킷 처리, 시스템 호출 모니터링, 성능 분석 등 다양한 작업을 효율적으로 수행할 수 있습니다.

eBPF의 주요 특징:

  • 커널 공간에서 실행되어 높은 성능 제공

  • JIT(Just-In-Time) 컴파일을 통한 네이티브 성능

  • 안전한 실행 환경 (검증기를 통한 프로그램 검증)

  • 동적 로딩 및 언로딩 가능

Cilium의 주요 이점

  1. 고성능 네트워킹: eBPF를 활용한 효율적인 패킷 처리

  2. 세분화된 네트워크 정책: L3-L7 수준의 네트워크 정책 지원

  3. 투명한 암호화: 노드 간 투명한 IPsec 또는 WireGuard 암호화

  4. 부하 분산: XDP(eXpress Data Path) 기반 고성능 부하 분산

  5. 관찰성: Hubble을 통한 네트워크 흐름 가시성

  6. 서비스 메시: 기존 사이드카 없이 L7 트래픽 관리

  7. 멀티 클러스터 네트워킹: 클러스터 간 투명한 연결

  8. BGP 지원: 외부 네트워크와의 통합

기존 CNI와의 비교

기능
Cilium
Calico
Flannel
AWS VPC CNI

네트워크 모델

eBPF

iptables/IPVS

VXLAN/host-gw

AWS ENI

네트워크 정책

L3-L7

L3-L4

제한적

AWS 보안 그룹

암호화

IPsec/WireGuard

IPsec

없음

없음

관찰성

Hubble

Flow Logs

제한적

VPC Flow Logs

서비스 메시

내장

Istio 필요

Istio 필요

Istio/AppMesh 필요

성능

매우 높음

높음

중간

높음

멀티 클러스터

내장

제한적

없음

Transit Gateway 필요

아키텍처

Cilium은 eBPF를 기반으로 한 데이터 플레인과 Kubernetes와 통합되는 컨트롤 플레인으로 구성됩니다.

spinner

주요 구성 요소

  1. Cilium Agent: 각 노드에서 실행되며 eBPF 프로그램을 로드하고 관리

  2. Cilium Operator: 클러스터 수준의 리소스 및 작업 관리

  3. eBPF 프로그램: 커널에 로드되어 패킷 처리 및 정책 시행

  4. Hubble: 네트워크 흐름 모니터링 및 관찰성 제공

  5. Cilium CLI: Cilium 및 Hubble 관리를 위한 명령줄 도구

네트워킹 모델

Cilium은 여러 네트워킹 모드를 지원합니다:

  1. 직접 라우팅: 노드 간 직접 라우팅 (BGP 또는 정적 라우팅)

  2. 터널링: VXLAN 또는 Geneve 터널을 통한 오버레이 네트워킹

  3. AWS ENI: Amazon EKS에서 ENI(Elastic Network Interface) 활용

  4. Azure IPAM: Azure AKS에서 Azure IPAM 활용

패킷 흐름

Cilium에서 패킷이 처리되는 방식:

  1. 패킷이 네트워크 인터페이스에 도착

  2. eBPF XDP 프로그램이 패킷을 초기 처리 (DDoS 방어, 부하 분산)

  3. eBPF TC(Traffic Control) 프로그램이 네트워크 정책 적용

  4. 패킷이 컨테이너 네트워크 네임스페이스로 전달

  5. 응답 패킷도 유사한 경로로 처리

Amazon EKS와의 통합

Amazon EKS에서 Cilium을 사용하는 방법은 크게 두 가지가 있습니다:

  1. Amazon EKS 추가 기능으로 설치: Amazon EKS는 Cilium을 관리형 추가 기능으로 제공합니다.

  2. 수동 설치: Helm 차트를 사용하여 직접 설치합니다.

Amazon EKS 추가 기능으로 설치

Helm을 사용한 수동 설치

EKS 특화 구성 옵션

EKS에서 Cilium을 사용할 때 고려해야 할 주요 구성 옵션:

  1. ENI 모드: AWS Elastic Network Interface를 활용하여 네이티브 AWS 네트워킹 성능 활용

  2. IPAM 모드: AWS VPC IP 주소 관리와 통합

  3. 암호화: 노드 간 트래픽 암호화 (WireGuard 또는 IPsec)

  4. NodeLocal DNSCache: DNS 성능 향상

  5. Hubble: 네트워크 관찰성 활성화

ENI 모드 구성

EKS 클러스터에 Cilium 설치

기존 EKS 클러스터에 Cilium 설치

Cilium CNI로 새 EKS 클러스터 생성

EKS 클러스터 간 연결

Cilium Cluster Mesh를 사용한 EKS 클러스터 간 연결:

설치 및 구성

사전 요구 사항

  • Kubernetes 클러스터 (v1.16 이상)

  • Linux 커널 4.9 이상 (권장: 5.4 이상)

  • kubectl 설정

  • Helm (선택 사항)

Cilium CLI 설치

구성 옵션

네트워킹 모드 구성

직접 라우팅 모드:

VXLAN 모드:

kube-proxy 대체 구성

완전 대체 모드:

암호화 구성

WireGuard 암호화:

IPsec 암호화:

네트워크 정책

Cilium은 Kubernetes NetworkPolicy API를 확장하여 L3-L7 수준의 세분화된 네트워크 정책을 제공합니다.

기본 네트워크 정책

Cilium 네트워크 정책

FQDN 기반 정책

Hubble을 통한 관찰성

Hubble은 Cilium의 관찰성 계층으로, eBPF를 통해 수집된 네트워크 흐름 데이터를 시각화하고 분석할 수 있게 해줍니다.

Hubble 설치

네트워크 흐름 관찰

Prometheus 통합

Cilium 테스트

모범 사례

성능 최적화

  1. 커널 버전 최적화: Linux 커널 5.4 이상 사용

  2. BBR 혼잡 제어 활성화: 네트워크 처리량 향상

  3. XDP 가속 활성화: 패킷 처리 성능 향상

  4. MTU 최적화: 네트워크 환경에 맞는 MTU 설정

보안 강화

  1. 기본 거부 정책 적용: 명시적으로 허용된 트래픽만 허용

  2. 암호화 활성화: 노드 간 트래픽 암호화

  3. 최소 권한 원칙 적용: 필요한 통신만 허용하는 정책 설계

관찰성 향상

문제 해결

연결성 문제

성능 문제

디버깅 도구

딥다이브 목차

Cilium 소개 및 기본 개념

  • Cilium 개요 및 역사

  • 컨테이너 네트워킹 기초

  • CNI(Container Network Interface) 이해하기

  • Cilium의 차별화 포인트

eBPF 기술 심층 분석

  • eBPF 기술 소개 및 역사

  • 커널 내 eBPF 작동 방식

  • eBPF 프로그램 유형 및 맵

  • Cilium에서의 eBPF 활용

네트워킹 모델 및 VXLAN

  • 컨테이너 네트워킹 모델 비교

  • VXLAN 기술 심층 분석

  • Cilium의 오버레이 네트워킹

  • 성능 최적화 기법

  • 라우팅 메커니즘 (Encapsulation vs Native-Routing)

  • 클라우드 제공업체별 네트워킹 (AWS ENI, Google Cloud)

IPAM 및 네트워크 정책

  • IP 주소 관리(IPAM) 전략

  • Kubernetes와 Cilium IPAM 통합

  • 네트워크 정책 설계 및 구현

  • 멀티 클러스터 시나리오

  • IPAM 모드 심층 분석 (Cluster Scope, Kubernetes Host Scope, Multi-Pool)

  • 클라우드 제공업체별 IPAM (Azure IPAM, AWS ENI, GKE)

  • CRD 기반 IPAM

L2-L7 네트워킹 및 로드 밸런싱

  • OSI 모델 계층 이해 (L2, L3, L4, L7)

  • Cilium의 계층별 기능

  • 서비스 메시 통합

  • 로드 밸런싱 아키텍처

  • 마스커레이딩 구성 및 구현 모드

  • IPv4 프래그먼트 처리

보안 및 가시성

  • Cilium의 보안 기능

  • 네트워크 가시성 및 모니터링

  • Hubble 아키텍처 및 활용

  • 실시간 위협 탐지

고급 주제 및 실제 사례

  • 성능 튜닝 및 문제 해결

  • 대규모 배포 전략

  • 실제 사용 사례 연구

  • 미래 로드맵 및 발전 방향

추가 자료

참고 자료

퀴즈

이 섹션에서 배운 내용을 테스트하려면 Cilium 딥다이브 퀴즈를 풀어보세요.

마지막 업데이트