개발 창고/Server

네트워킹 - Part4: 네트워크 모델 살펴보기

로이제로 2025. 7. 30. 22:00
반응형

들어가며: Kubernetes 네트워크의 복잡성 이해하기

Kubernetes 클러스터에서는 Pod, 노드, 서비스가 서로 통신해야 하며, 이러한 통신을 가능하게 하는 규칙을 Kubernetes 네트워크 모델이라 부릅니다.
이 모델은 단순한 IP 통신을 넘어서, 서비스 디스커버리, DNS, CNI(Container Network Interface) 플러그인과 같은 다양한 요소를 포함합니다.

이번 글에서는:

  • Kubernetes 네트워크 모델의 핵심 개념
  • Pod 간 통신 방식과 원리
  • 노드 간 통신과 CNI 플러그인 역할
  • 서비스 및 DNS와의 관계

목차 (Table of Contents)

  1. Kubernetes 네트워크 모델이란?
  2. Pod 간 통신 원리
  3. 노드 간 네트워킹
  4. CNI(Container Network Interface)란?
  5. Service 및 DNS와의 관계
  6. 실습: Pod 통신 테스트
  7. FAQ (Answer Engine Optimization)
  8. 핵심 요약
  9. 마무리

1. Kubernetes 네트워크 모델이란?

Kubernetes는 모든 Pod가 고유한 IP 주소를 가지며, Pod 간에는 NAT(Network Address Translation) 없이 직접 통신할 수 있어야 한다는 원칙을 따릅니다.
즉, Pod-to-Pod, Pod-to-Service, 외부-내부 간의 네트워킹을 표준화된 방식으로 처리합니다.


2. Pod 간 통신 원리

  • 각 Pod는 자체 IP를 갖습니다.
  • 같은 노드 내 Pod 통신은 브리지 네트워크(Bridge Network)를 통해 이루어집니다.
  • 다른 노드의 Pod 간 통신CNI 플러그인이 설정한 라우팅 규칙에 따라 동작합니다.

3. 노드 간 네트워킹

  • 노드의 kubelet과 kube-proxy가 Pod 트래픽을 관리
  • 노드 간 통신을 위해 오버레이 네트워크 (Flannel, Calico, Weave Net) 또는 라우팅 기반 네트워크를 사용

4. CNI(Container Network Interface)란?

CNI는 컨테이너 네트워크를 표준화하는 플러그인 인터페이스입니다.
주요 CNI 플러그인:

  • Flannel: 단순하고 설치가 쉬운 오버레이 네트워크
  • Calico: 고급 네트워크 정책 지원
  • Weave Net: 자동화된 Pod 네트워킹

설치 예:

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

5. Service 및 DNS와의 관계

  • Service는 Pod의 IP가 변경되더라도 고정된 접근점을 제공합니다.
  • CoreDNS는 Service 이름을 DNS 엔트리로 등록하여 Pod 간 통신을 쉽게 합니다.

예:

curl http://my-service.default.svc.cluster.local

6. 실습: Pod 통신 테스트

1) 테스트 Pod 생성

kubectl run pod-a --image=nginx
kubectl run pod-b --image=busybox --command -- sleep 3600

2) pod-b에서 pod-a로 접근 테스트

kubectl exec -it pod-b -- wget -qO- http://<pod-a-ip>

7. FAQ (Answer Engine Optimization)

Q1. 왜 Pod IP는 외부에서 직접 접근할 수 없나요?
A. Pod는 클러스터 내부 네트워크에 속해 외부에 직접 노출되지 않기 때문입니다.

Q2. CNI 플러그인은 필수인가요?
A. 네트워킹을 위해 반드시 필요하며, 기본적으로 설치가 되어 있거나 별도로 설치해야 합니다.

Q3. Pod 간 통신이 안 되는 경우 무엇을 확인해야 하나요?
A. CNI 플러그인 상태, 네트워크 정책(Network Policy), iptables 규칙을 점검해야 합니다.


8. 핵심 요약

개념 설명
네트워크 모델 Pod-to-Pod, Pod-to-Service 통신 표준
CNI Pod 네트워킹을 위한 플러그인 인터페이스
CoreDNS Service 이름 기반 통신 지원
오버레이 네트워크 노드 간 통신을 가상화하여 연결

9. 마무리

Kubernetes 네트워크 모델을 이해하면 서비스 간 안정적 통신과 보안 정책 설계가 훨씬 용이해집니다.


반응형