개발 창고/Server
네트워킹 - Part4: 네트워크 모델 살펴보기
로이제로
2025. 7. 30. 22:00
반응형
들어가며: Kubernetes 네트워크의 복잡성 이해하기
Kubernetes 클러스터에서는 Pod, 노드, 서비스가 서로 통신해야 하며, 이러한 통신을 가능하게 하는 규칙을 Kubernetes 네트워크 모델이라 부릅니다.
이 모델은 단순한 IP 통신을 넘어서, 서비스 디스커버리, DNS, CNI(Container Network Interface) 플러그인과 같은 다양한 요소를 포함합니다.
이번 글에서는:
- Kubernetes 네트워크 모델의 핵심 개념
- Pod 간 통신 방식과 원리
- 노드 간 통신과 CNI 플러그인 역할
- 서비스 및 DNS와의 관계
목차 (Table of Contents)
- Kubernetes 네트워크 모델이란?
- Pod 간 통신 원리
- 노드 간 네트워킹
- CNI(Container Network Interface)란?
- Service 및 DNS와의 관계
- 실습: Pod 통신 테스트
- FAQ (Answer Engine Optimization)
- 핵심 요약
- 마무리
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 네트워크 모델을 이해하면 서비스 간 안정적 통신과 보안 정책 설계가 훨씬 용이해집니다.
반응형