Skip to content

Part 1: Calico 소개 및 기본 개념

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

실습 환경 설정

이 문서의 예제를 따라하기 위해서는 다음과 같은 도구와 환경이 필요합니다.

필수 도구

도구버전용도
kubectlv1.28+Kubernetes 클러스터 관리
calicoctlv3.29+Calico 리소스 관리
helmv3.12+Calico 설치 (선택)
kind/minikube최신로컬 테스트 클러스터

kubectl 설치 확인

bash
# kubectl 버전 확인
kubectl version --client

# 클러스터 연결 확인
kubectl cluster-info

calicoctl 설치

bash
# Linux (amd64)
curl -L https://github.com/projectcalico/calico/releases/download/v3.29.0/calicoctl-linux-amd64 -o calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin/

# Linux (arm64)
curl -L https://github.com/projectcalico/calico/releases/download/v3.29.0/calicoctl-linux-arm64 -o calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin/

# macOS (Intel)
curl -L https://github.com/projectcalico/calico/releases/download/v3.29.0/calicoctl-darwin-amd64 -o calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin/

# macOS (Apple Silicon)
curl -L https://github.com/projectcalico/calico/releases/download/v3.29.0/calicoctl-darwin-arm64 -o calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin/

calicoctl 구성

bash
# Kubernetes API를 데이터스토어로 사용 (권장)
export DATASTORE_TYPE=kubernetes
export KUBECONFIG=~/.kube/config

# 또는 설정 파일 생성
mkdir -p ~/.calico
cat > ~/.calico/calicoctl.cfg <<EOF
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: "kubernetes"
  kubeconfig: "$HOME/.kube/config"
EOF

# 연결 테스트
calicoctl get nodes

테스트 클러스터 설정 (kind)

bash
# kind 클러스터 생성 (Calico용 설정)
cat > kind-calico-config.yaml <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
  # 기본 CNI 비활성화
  disableDefaultCNI: true
  # Pod 서브넷
  podSubnet: "10.244.0.0/16"
nodes:
  - role: control-plane
  - role: worker
  - role: worker
EOF

kind create cluster --name calico-test --config kind-calico-config.yaml

# Calico 설치
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.0/manifests/tigera-operator.yaml

# Installation 리소스 적용
kubectl create -f - <<EOF
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  calicoNetwork:
    ipPools:
      - cidr: 10.244.0.0/16
        encapsulation: VXLANCrossSubnet
        natOutgoing: Enabled
        nodeSelector: all()
EOF

# 설치 완료 대기
kubectl wait --for=condition=Available --timeout=300s deployment/calico-kube-controllers -n calico-system

Calico란 무엇인가?

Calico는 컨테이너, 가상 머신, 네이티브 호스트 기반 워크로드를 위한 오픈소스 네트워킹 및 네트워크 보안 솔루션입니다. Kubernetes, OpenShift, Docker EE, OpenStack 등 다양한 플랫폼을 지원합니다.

핵심 정의

Calico는 클라우드 네이티브 애플리케이션을 위한 확장 가능한 네트워킹네트워크 보안 솔루션으로, 표준 Linux 네트워킹 도구를 활용하여 고성능의 유연한 네트워크 패브릭을 제공합니다.

Project Calico의 역사

타임라인

연도이벤트상세
2014Project Calico 시작Metaswitch Networks에서 오픈소스 프로젝트로 시작
2016Tigera 설립Calico 상업화를 위한 회사 설립
2017Calico 2.0Kubernetes 네이티브 지원, CNI 표준 준수
2018Calico 3.0Typha 도입으로 대규모 클러스터 지원
2019Calico Enterprise엔터프라이즈 기능 (L7 정책, 암호화 등) 출시
2020eBPF 데이터플레인eBPF 기반 데이터플레인 베타 도입
2021Calico CloudSaaS 형태의 Calico 서비스 출시
2022CNCF IncubatingCNCF Incubating 프로젝트 승인
2023eBPF GAeBPF 데이터플레인 정식 출시
2024Calico 3.28Windows eBPF 지원, 향상된 관측성
2025Calico 3.29Kubernetes 1.32 지원, ARM64 최적화

프로젝트 거버넌스

5가지 핵심 기능 상세

1. 고성능 네트워킹

Calico는 순수 Layer 3 접근 방식을 사용하여 네트워크 오버헤드를 최소화합니다.

특징:

  • BGP 기반 라우팅으로 오버레이 없는 네트워킹 가능
  • 필요시 IPIP/VXLAN 캡슐화 지원
  • eBPF 데이터플레인으로 kube-proxy 대체 가능
yaml
# 고성능 Direct Routing 설정
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: high-performance-pool
spec:
  cidr: 10.244.0.0/16
  ipipMode: Never
  vxlanMode: Never
  natOutgoing: true
  nodeSelector: all()

2. 강력한 Network Policy

Kubernetes 표준 NetworkPolicy를 완전히 지원하며, Calico 확장 정책으로 더 강력한 보안을 제공합니다.

정책 계층:

지원 기능:

  • Ingress/Egress 규칙
  • CIDR, 포트, 프로토콜 기반 필터링
  • Label selector 기반 타겟팅
  • FQDN 기반 egress 제어 (Enterprise)
  • HTTP 메서드/경로 기반 L7 정책 (Enterprise)

3. 유연한 네트워킹 모드

다양한 환경에 맞는 네트워킹 모드를 제공합니다.

모드캡슐화장점적합 환경
Direct/BGP없음최고 성능, 투명성BGP 지원 네트워크
IPIPIP-in-IP효율적, AWS/GCP 호환클라우드 환경
VXLANUDP/VXLAN광범위 호환성Azure, 방화벽 환경
CrossSubnet조건부최적 성능 + 호환성하이브리드 환경

4. 대규모 확장성

Typha 컴포넌트를 통해 수천 노드 클러스터를 지원합니다.

확장성 지표:

  • 단일 클러스터 최대 5,000+ 노드
  • 100,000+ Pod 지원
  • 수백만 개의 Network Policy 규칙

5. 멀티 환경 지원

온프레미스, 클라우드, 하이브리드 환경을 모두 지원합니다.

지원 플랫폼:

  • 퍼블릭 클라우드: AWS EKS, Azure AKS, GCP GKE
  • 온프레미스: OpenShift, Rancher, VMware Tanzu
  • 로컬 개발: kind, minikube, k3s
  • OS: Linux (RHEL, Ubuntu, Amazon Linux), Windows Server

Calico vs 전통적인 네트워킹

전통적인 VM 네트워킹의 한계

Calico의 클라우드 네이티브 접근

주요 차이점

특성전통적인 네트워킹Calico
구성정적, 수동동적, 선언적
확장성VLAN 제한IP 기반 무제한
정책방화벽 규칙라벨 기반 정책
변경 속도분~시간초 단위
자동화제한적Kubernetes 네이티브

사용 사례 시나리오

시나리오 1: 온프레미스 데이터센터

요구사항:

  • 기존 BGP 인프라와 통합
  • 물리 서버와 Kubernetes Pod 간 직접 통신
  • 엄격한 보안 정책 적용
yaml
# BGP 피어링 설정
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name: datacenter-tor
spec:
  peerIP: 192.168.1.1
  asNumber: 64513
  nodeSelector: "rack == 'rack1'"
---
# BGP 구성
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
  name: default
spec:
  asNumber: 64512
  nodeToNodeMeshEnabled: false
  serviceClusterIPs:
    - cidr: 10.96.0.0/12

시나리오 2: 퍼블릭 클라우드 (AWS EKS)

요구사항:

  • VPC CNI 네트워킹 활용
  • Calico Network Policy로 보안 강화
  • 멀티 AZ 배포
bash
# VPC CNI + Calico 조합 설치
helm install calico projectcalico/tigera-operator \
  --namespace tigera-operator \
  --create-namespace \
  --set installation.kubernetesProvider=EKS \
  --set installation.cni.type=AmazonVPC

시나리오 3: 하이브리드 환경

요구사항:

  • 온프레미스와 클라우드 워크로드 연결
  • 일관된 Network Policy 적용
  • 통합 관측성
yaml
# CrossSubnet 모드로 하이브리드 최적화
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: hybrid-pool
spec:
  cidr: 10.244.0.0/16
  ipipMode: CrossSubnet
  vxlanMode: Never
  natOutgoing: true

커뮤니티 및 지원

커뮤니티 리소스

기여 가이드

bash
# 소스 코드 클론
git clone https://github.com/projectcalico/calico.git
cd calico

# 개발 환경 설정
make dev-environment

# 테스트 실행
make test

엔터프라이즈 지원

제품특징대상
Calico Open Source무료, 커뮤니티 지원개발/테스트, 소규모 프로덕션
Calico Enterprise상용 지원, L7 정책, 암호화대규모 엔터프라이즈
Calico CloudSaaS, 관리형 서비스빠른 도입이 필요한 조직

요약

이 장에서 학습한 내용:

  1. Calico의 정의: 클라우드 네이티브 네트워킹 및 보안 솔루션
  2. 역사와 발전: 2014년 시작, 현재 CNCF Incubating 프로젝트
  3. 5가지 핵심 기능: 고성능 네트워킹, Network Policy, 유연한 모드, 확장성, 멀티 환경
  4. 사용 사례: 온프레미스, 클라우드, 하이브리드 환경
  5. 커뮤니티: 활발한 오픈소스 커뮤니티와 엔터프라이즈 지원

다음 장에서는 Calico 아키텍처를 심층적으로 분석합니다.


메인 페이지로 돌아가기 | 다음: 아키텍처 심층 분석 →

퀴즈

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