Part 7: 고급 주제

지원 버전: Calico v3.29+ / Kubernetes 1.28+ 마지막 업데이트: 2026년 2월 23일

개요

이 문서에서는 Calico의 고급 기능과 대규모 프로덕션 환경에서의 활용 방법을 다룹니다. IPAM 심화, WireGuard 암호화, Egress Gateway, 멀티 클러스터 페더레이션, Windows 지원, 그리고 대규모 클러스터 설계에 대해 상세히 알아봅니다.

IPAM 심화

Block 기반 IPAM 아키텍처

Calico의 IPAM(IP Address Management)은 블록 기반 할당 방식을 사용하여 효율적인 IP 주소 관리를 제공합니다.

spinner

IP Block Affinity

각 노드는 하나 이상의 IP 블록에 대한 친화성(affinity)을 가집니다. 이 메커니즘은 다음과 같이 작동합니다:

  1. 블록 할당: Pod가 노드에 스케줄링되면 해당 노드에 친화성이 있는 블록에서 IP 할당

  2. 블록 확장: 기존 블록이 소진되면 새로운 블록을 노드에 할당

  3. 블록 해제: 노드의 모든 Pod가 삭제되면 블록 친화성 해제

# IPPool 설정 - blockSize 조정
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: default-ipv4-pool
spec:
  cidr: 10.244.0.0/16
  # 블록 크기: /26 = 64 IPs (기본값)
  # 더 작은 블록: /28 = 16 IPs (노드가 많은 경우)
  # 더 큰 블록: /24 = 256 IPs (Pod 밀도가 높은 경우)
  blockSize: 26
  ipipMode: Never
  vxlanMode: CrossSubnet
  natOutgoing: true
  nodeSelector: all()

할당 알고리즘

Calico IPAM의 IP 할당 알고리즘:

spinner

blockSize 권장 사항:

클러스터 규모
권장 blockSize
IP 수/블록
설명

소규모 (<50 노드)

/26

64

기본값, 대부분 환경에 적합

중규모 (50-200 노드)

/27

32

IP 효율성 향상

대규모 (200+ 노드)

/28

16

최대 IP 효율성

고밀도 Pod

/24

256

노드당 Pod 수가 많은 경우

Host-local IPAM 모드

Kubernetes CNI의 host-local IPAM과 함께 사용할 수 있습니다:

Multi-Pool 전략

워크로드 유형에 따라 다른 IP Pool을 사용할 수 있습니다:

IPv6 / Dual-stack 지원

Calico는 IPv6 전용 및 Dual-stack 환경을 지원합니다:

IP 고갈 감지 및 대응

IP 고갈 상황을 감지하고 대응하는 방법:

IP 고갈 대응 전략:

상황
해결 방법
명령어/설정

전체 Pool 소진

CIDR 확장 또는 새 Pool 추가

새 IPPool 생성

특정 노드 블록 소진

추가 블록 할당 허용

maxBlocksPerHost 조정

Orphaned IP

수동 해제

calicoctl ipam release

비효율적 블록 사용

블록 크기 조정

blockSize 변경

BlockAffinity를 활용한 노드별 PodCIDR 조회

Calico의 Block 기반 IPAM에서 각 노드에 할당된 CIDR 블록은 BlockAffinity CR로 추적됩니다. 이 CR은 정적 라우트 구성이나 IPAM 디버깅 시 노드별 파드 CIDR을 확인하는 데 사용됩니다.

⚠ EKS Hybrid Nodes 참고: Calico는 EKS Hybrid Nodes에서 공식 지원이 중단되었습니다. 신규 배포에는 Cilium을 사용하세요. 아래 내용은 기존 Calico 환경의 참고용입니다.

BlockAffinity CR 조회

출력 예시:

전체 IPPool 확인

정적 라우트 자동 생성

BlockAffinity에서 정적 라우트 명령을 생성하는 예시:

활용 사례: EKS Hybrid Nodes 환경에서 BGP 없이 정적 라우트를 구성할 때 이 정보를 사용합니다. 자세한 내용은 EKS Hybrid Nodes - 네트워크 구성을 참조하세요.

WireGuard 암호화

WireGuard 개요

WireGuard는 현대적이고 고성능인 VPN 프로토콜로, Calico에서 노드 간 트래픽을 암호화하는 데 사용됩니다.

spinner

WireGuard 설정

성능 영향

WireGuard 암호화가 네트워크 성능에 미치는 영향:

메트릭
암호화 없음
WireGuard
IPsec (AES-GCM)

처리량

100% (기준)

95-98%

85-90%

지연 시간

100% (기준)

+5-10%

+15-25%

CPU 사용량

낮음

중간

높음

설정 복잡도

없음

낮음

높음

WireGuard vs IPsec 비교

특성
WireGuard
IPsec

암호화 알고리즘

ChaCha20-Poly1305, Curve25519

다양 (AES-GCM, etc.)

코드 복잡도

~4,000줄

~400,000줄

성능

매우 높음

중간

설정 복잡도

간단

복잡

키 관리

자동 (Calico 관리)

복잡 (IKE 필요)

FIPS 준수

미인증

인증 가능

커널 요구사항

Linux 5.6+ (또는 모듈)

모든 Linux

키 로테이션

Calico는 WireGuard 키를 자동으로 관리합니다:

Egress Gateway

Egress Gateway 개요

Egress Gateway는 특정 워크로드의 외부 트래픽이 지정된 게이트웨이 노드를 통해 나가도록 하여, 고정된 소스 IP를 제공합니다.

spinner

Egress Gateway 설정

네임스페이스별 SNAT 정책

컴플라이언스 요구사항 대응

외부 서비스가 특정 소스 IP만 허용하는 경우의 설정:

멀티 클러스터 페더레이션

Typha 기반 페더레이션

대규모 멀티 클러스터 환경에서 Typha를 활용한 페더레이션:

spinner

크로스 클러스터 정책

Windows 컨테이너 지원

지원 기능 및 제한사항

기능
Windows 지원
제한사항

Pod 네트워킹

완전 지원

-

Network Policy (L3-L4)

완전 지원

-

VXLAN 오버레이

지원

성능 오버헤드 있음

BGP

지원

Windows Server 2019+

eBPF

미지원

Linux 전용

WireGuard

미지원

Linux 전용

Host Endpoint

제한적

일부 기능만

IPv6

미지원

Windows 제한

Windows 노드 설치

HNS (Host Networking Service) 통합

spinner

Calico Enterprise / Tigera 개요

오픈소스 vs Enterprise 비교

기능
Calico OSS
Calico Enterprise

Network Policy

L3-L4

L3-L7 + DNS

정책 Tier

제한적

무제한 Tier

관측성

기본 메트릭

Flow Visualization, Service Graph

위협 방어

없음

IDS/IPS, DPI, 위협 피드

컴플라이언스

없음

감사 보고서, PCI-DSS 지원

Egress Gateway

수동 설정

네이티브 지원

멀티 클러스터

BGP 수동 설정

Federation Controller

UI

없음

Tigera Manager UI

지원

커뮤니티

24/7 엔터프라이즈

가격

무료

유료 (노드 기반)

Enterprise 전용 기능

대규모 클러스터 설계 (1000+ 노드)

Typha 복제본 사이징

Route Reflector 토폴로지

1000+ 노드에서는 full-mesh BGP 대신 Route Reflector 토폴로지를 사용합니다:

spinner

Felix 성능 튜닝

etcd vs Kubernetes 데이터스토어

특성
etcd 데이터스토어
Kubernetes 데이터스토어

설정 복잡도

높음 (별도 etcd 필요)

낮음 (기존 API 서버 사용)

확장성

매우 높음

높음

성능

최고

우수

운영 오버헤드

높음

낮음

권장 규모

5000+ 노드

5000 노드 이하

백업

별도 etcd 백업 필요

K8s 백업에 포함

성능 튜닝 종합

환경별 권장 설정

리소스 할당 가이드라인

컴포넌트
소규모
중규모
대규모

calico-node CPU

200m-500m

500m-1000m

1000m-2000m

calico-node Memory

256Mi-512Mi

512Mi-1Gi

1Gi-2Gi

Typha CPU

100m-200m

200m-500m

500m-2000m

Typha Memory

128Mi-256Mi

256Mi-512Mi

512Mi-2Gi

Typha Replicas

3

3-5

5-15


다음 단계

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 고급 주제 퀴즈를 풀어보세요.

마지막 업데이트