1. 오버레이 네트워크란?
- 오버레이 네트워크는 물리적 네트워크 위에 논리적 가상 네트워크 계층을 추가로 만들고, 그 내부에서 Pod들에게 네트워크 주소(IP)를 할당하는 방식입니다.
- 클러스터의 각 노드는 Azure Virtual Network (VNet)의 서브넷에 배포되며, 노드 자체는 실제 VNet IP를 갖습니다.
- Pod들은 노드가 속한 VNet과는 논리적으로 분리된 별도의 프라이빗 CIDR(논리 IP Pool)에서 IP를 할당받습니다.
- Pod 간 통신은 이 오버레이 네트워크 내부에서 가상 터널링(VXLAN, Geneve 등)을 통해 직접 연결됩니다.
- 외부로 나가는 트래픽은 노드 IP로 NAT(Source NAT)되어 전송됩니다.
- 외부(온프레미스, 인터넷)에서 Pod에 직접 접근은 불가능하며, 반드시 Service LoadBalancer 또는 Ingress Controller를 통해 서비스합니다.
2. AKS 오버레이 네트워크 동작 원리 및 구조
- 클러스터 노드는 VNet 서브넷 내에서 CIDR /24(예: 10.0.0.0/24) 주소 공간을 할당받습니다.
- 각 노드는 자신에게 할당된 논리 서브넷에서 Pod에게 IP(pool) 할당 (Pod CIDR, 예: 10.244.0.0/16 내 /24)
- Pod간 트래픽은 TCP/UDP 패킷을 VXLAN 터널링으로 캡슐화하여 노드 간 전달
- 기존 VNet 라우팅 테이블엔 Pod CIDR이 별도의 라우팅 도메인을 형성하여 독립적 라우팅 제공
- 노드 IP를 통한 NAT로 클러스터 외부 통신 처리, Pod의 논리 IP는 외부에 노출되지 않음
- Pod가 외부 리소스에 접근할 떄는 노드 IP로 라우팅되고, 반대로 외부에서 Pod로 직접 접근 불가
3. 주요 특징 및 장점
| 특징 | 설명 |
| 논리적 IP 주소 할당 | 물리적 VNet과 다른 프라이빗 CIDR 대역에서 논리 IP를 할당해 IP 주소 효율적 활용 |
| Pod 간 직접 통신 | VXLAN 기반 가상 터널로 노드 간 Pod간 직접 통신 가능 |
| 네트워크 격리 및 보안 강화 | 격리된 논리 IP 영역, 네트워크 정책 적용 가능 |
| 클러스터 IP 주소 확장성 제공 | Pod IP 주소 공간 확장 용이, 대규모 클러스터 지원 |
| 외부 IP 고갈 문제 해소 | VNet 내 IP 고갈 문제 없이 오버레이 IP Pool로 범위 확장 |
| NAT 통한 외부네트워크 접근 지원 | 노드 IP를 통한 NAT로 아웃바운드 리소스 접근 |
| 외부에서 Pod 직접 접근 차단 | 보안성 강화, 외부 리소스는 클러스터 내 Service 또는 LB 통한 접근 필수 |
4. 운영 시 고려 사항 및 제한
- Overlay 네트워크 설정 시, Pod IP 풀(CIDR)과 VNet 서브넷 CIDR의 충돌 방지 필요
- NAT 포트 부족으로 인한 아웃바운드 병목 가능성 대비, 관리형 NAT Gateway 활용 권장
- VXLAN 터널링 장애, 네트워크 정책(NSG), 사용자 정의 라우팅(UDR) 적용 시 경로 오류에 유의
- 클러스터 스케일링 시 신규 노드에 대한 서브넷 자동 배분 관리 필요
- 로깅 모니터링 툴을 통해 Overlay 터널 상태 및 트래픽 이상 조기 감지 체계 구현
- IPv6 또는 Dual stack 환경에서는 지원 제한 사항 및 구성 제한 확인 필요
5. AKS Overlay 네트워크 주요 설정 옵션
| 옵션명 | 예시 | 설명 |
| networkPlugin | azure (Azure CNI) | Azure CNI 플러그인 지정 |
| networkPluginMode | overlay | Overlay 네트워크 모드 활성화 |
| podCidr | 10.244.0.0/16 | Pod에 할당할 논리 IP 대역 사이즈 |
| vnetSubnetId | 전체 서브넷 리소스 ID (URI) | 클러스터가 속한 Azure VNet 서브넷 리소스 ID |
| serviceCidr | 10.0.0.0/16 | Kubernetes 서비스 IP 풀 CIDR |
| dnsServiceIp | 10.0.0.10 | Kubernetes 내부 DNS 서비스 IP |
| outboundType | loadBalancer, managedNATGateway | 아웃바운드 NAT 트래픽 처리 방식 지정 |
| nsgId | NSG(네트워크 보안 그룹) 리소스 ID | Azure 네트워크 보안 규칙 연동 |
| routeTableId | 라우팅 테이블 ID | 사용자 정의 라우팅 테이블 관리 |
| privateClusterEnabled | true/false | 제어 플레인 프라이빗 클러스터 활성화 여부 |
- AKS Overlay 네트워크 구성 예시 (Azure CLI)
| bash az aks create \ --resource-group myResourceGroup \ --name myOverlayCluster \ --network-plugin azure \ --network-plugin-mode overlay \ --pod-cidr 10.244.0.0/16 \ --service-cidr 10.0.0.0/16 \ --dns-service-ip 10.0.0.10 \ --outbound-type managedNATGateway \ --vnet-subnet-id /subscriptions/xxx/resourceGroups/yyy/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet \ --nsg-resource-id /subscriptions/xxx/resourceGroups/yyy/providers/Microsoft.Network/networkSecurityGroups/myNSG \ --route-table-id /subscriptions/xxx/resourceGroups/yyy/providers/Microsoft.Network/routeTables/myUDR \ --enable-private-cluster false |
6. 관련 링크
- AKS(Azure Kubernetes Service) CNI 네트워킹 개요 https://learn.microsoft.com/ko-kr/azure/aks/concepts-network-cni-overview
'Azure 상식' 카테고리의 다른 글
| Dockerfile 기본 개념 및 레이어 구성 원리 (0) | 2025.08.23 |
|---|---|
| AKS PV/PVC 사용법 및 CSI 구성에 따른 Azure Files 특성 이해 (0) | 2025.08.23 |
| Azure 관련AKS 설치 구성에 대한 이해: Ingress Controller, CNI, CSI (1) | 2025.08.23 |
| Azure Load Balancer 이해: 가용성, 분산처리 특징과 Coverage (0) | 2025.08.22 |
| AKS권한 관리 방식: K8S의 IAM처리 방식의 이해 Entra ID, Service Account 등 이해와 차이점 (0) | 2025.08.22 |