Learning
토픽 30 / 107·컨테이너 오케스트레이션

Kubernetes 네트워킹

Kubernetes 네트워킹

Kubernetes 클러스터 내 Pod, Service, 외부 간 네트워크 통신을 관리하는 구조로, 플랫 네트워크 모델을 기반으로 모든 Pod가 NAT 없이 직접 통신 가능하며 Service와 Ingress를 통해 로드밸런싱과 외부 노출을 제공

네트워킹 계층: 외부 트래픽 → Ingress Controller(L7 라우팅 Host/Path 기반/nginx-ingress/traefik/istio-gateway) → Service L4(ClusterIP 내부 전용/NodePort 노드 포트/LoadBalancer 외부 LB CSP 연동/ExternalName 외부 DNS 매핑) → Pod Network CNI(Pod 간 직접 통신 10.0.1.1↔10.0.1.2↔10.0.2.1↔10.0.2.2)

Service 유형: ClusterIP(클러스터 내부 IP 할당 기본값/클러스터 내부 접근/내부 마이크로서비스 통신), NodePort(모든 노드의 특정 포트로 노출/노드IP:포트/개발/테스트/외부 LB 연동), LoadBalancer(클라우드 LB 프로비저닝/외부 인터넷/프로덕션 외부 서비스), ExternalName(외부 DNS 이름으로 매핑/외부 서비스 참조)

CNI 플러그인: Calico(BGP 기반/NetworkPolicy 지원/성능/프로덕션/보안 요구), Flannel(간단/VXLAN 오버레이/소규모/학습), Cilium(eBPF 기반/고성능/L7 정책/대규모/관찰성), Weave(암호화/멀티캐스트/보안 요구 환경), AWS VPC CNI(AWS VPC 네이티브 IP/EKS)

Ingress Controller: NGINX Ingress(가장 널리 사용/안정적), Traefik(동적 설정/Let's Encrypt), Istio Gateway(Service Mesh 통합), AWS ALB Ingress(AWS ALB 네이티브)

NetworkPolicy: Ingress(Pod로 들어오는 트래픽 제어), Egress(Pod에서 나가는 트래픽 제어), 기본 거부(모든 트래픽 차단 후 허용 규칙 추가)

비교: ClusterIP(내부 전용/기본값) vs NodePort(노드 포트 노출/테스트용) vs LoadBalancer(외부 LB/프로덕션) vs ExternalName(외부 DNS 매핑)

연관: Kubernetes, CNI, Service Mesh, Ingress, 네트워크 보안