← 목차
Week 4 · Phase 2 핵심 오브젝트
네트워킹
Service · Ingress · CNI
Pod 평면 네트워크부터 Service 4타입, Ingress 도메인 라우팅, CoreDNS, 그리고 CNI 비교까지
학습 자료
· k8s-networking · (심화) cni-comparison · kube-proxy
산출물 · 도메인 기반 라우팅 구현
학습 목표
"서비스를 어떻게 노출하고 연결하나"
Pod 네트워크 모델
— 모든 Pod가 하나의 평면 IP로 통신하는 원리를 이해한다
Service 4타입
— ClusterIP / NodePort / LoadBalancer / ExternalName을 구분한다
kube-proxy
— iptables / IPVS 모드 동작을 안다
Ingress
— 도메인·경로 기반 HTTP 라우팅을 구현한다
CNI
— Antrea / Calico / Cilium의 역할·차이를 설명한다
Service 4가지 타입
사라지는 Pod IP 앞에 안정적인 연결점을 제공
타입
노출 범위
용도
ClusterIP
클러스터 내부 (기본)
내부 서비스 간 통신 · 가상 IP
NodePort
노드 IP:30000–32767
외부에서 노드 포트로 접근 (개발/테스트)
LoadBalancer
외부 LB VIP
클라우드/MetalLB로 외부 노출
ExternalName
DNS CNAME
외부 도메인을 클러스터 이름으로 매핑
Ingress — 도메인·경로 라우팅
하나의 진입점(L7)에서 여러 서비스로 분기
Client
HTTP(S)
Ingress Controller
nginx · 호스트/경로 규칙
api.example.local →
Service: api
web.example.local →
Service: web
Ingress = L7 라우팅(호스트·경로) · NodePort/LoadBalancer 여러 개 대신 진입점 1개로 통합 → 비용·관리 절감
CNI 비교 — Antrea · Calico · Cilium
Pod 네트워크·정책을 구현하는 플러그인, 데이터플레인이 다르다
Antrea
OVS 기반
Open vSwitch 데이터플레인
NetworkPolicy + Antrea CRD
VMware/VKS 기본 CNI
Calico
L3 라우팅/BGP
BGP 라우팅(터널 없이도)
강력한 NetworkPolicy
대규모·성능 안정
Cilium
eBPF 기반
eBPF 데이터플레인·고성능
L7 정책·Hubble 관측성
kube-proxy 대체 가능
라이브 실습 — Service & Ingress
타입별 차이 관찰 후 Ingress Controller 설치
# 실습 1: Service 타입 비교 (ClusterIP → NodePort → LoadBalancer)
$
./k8s-learn.sh
# 4번 메뉴
# 실습 2: Ingress Controller(nginx) 설치
$
helm
repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$
helm
install ingress-nginx ingress-nginx/ingress-nginx \ -n ingress-nginx --create-namespace \ --set controller.service.type=
NodePort
라이브 실습 — CoreDNS (서비스 디스커버리)
이름으로 서비스를 찾는 원리
# dnsutils Pod에서 이름 해석 관찰
$
kubectl
run dnsutils --image=registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3 --rm -it -- bash
# Pod 안에서:
#
nslookup
kubernetes.default
#
nslookup
my-svc.my-namespace.svc.cluster.local
i
서비스 FQDN 규칙:
<service>.<namespace>.svc.cluster.local
— Pod IP는 사라져도 이 이름은 안정적
과제 — 네트워킹 실전
정책·노출·보안·CNI 비교
기본
노출 & 보안
NetworkPolicy
로 dev→prod 접근 차단
MetalLB
로 LoadBalancer 구현(베어메탈)
TLS Secret +
Ingress HTTPS
(cert-manager)
심화
CNI · kube-proxy 비교
동일 워크로드를
Antrea/Calico/Cilium
에 배포 → 패킷 경로(터널 vs BGP vs eBPF) 비교
iptables ↔ IPVS 전환 → 분산 알고리즘(rr/lc) 검증
체크리스트 & 다음 주
이걸 할 수 있으면 Week 4 완료
CNI
가 무엇이고 왜 필요한지 설명할 수 있다
kube-proxy
의 iptables/IPVS 모드 차이를 안다
CoreDNS
의 service discovery 동작 원리를 안다
Ingress
와 NodePort/LoadBalancer의 차이를 비교할 수 있다
→
다음 주(Week 5)
— 스토리지: PV/PVC, CSI, StatefulSet으로 영속 데이터를 다룹니다.
‹
›