Kubernetes는 CNI(Container Networking Interface) 플러그 인을 사용하여 Kubernetes 클러스터에서 네트워킹을 관리합니다. CPI는 Pod에 IP 주소를 할당하고, Pod 간 네트워크 라우팅, Kubernetes Service 라우팅 등을 담당합니다.
AKS(Azure Kubernetes Service)는 두 가지 주요 네트워킹 모델인 오버레이 네트워크와 플랫 네트워크를 사용합니다.
오버레이 네트워크:
- Pod에 대해 논리적으로 구분된 CIDR 범위를 사용하여 VNet IP 주소 공간을 절약합니다.
- 최대 클러스터 크기 조정 지원.
- 간단한 IP 주소 관리.
플랫 네트워크:
- Pod는 전체 VNet 연결을 얻고 연결된 네트워크에서 개인 IP 주소를 통해 직접 연결할 수 있습니다.
- 인프라가 없는 대규모 VNet IP 주소 공간이 필요합니다.
네트워킹 모델을 선택할 때 각 CNI 플러그 인의 사용 사례와 사용하는 네트워크 모델 유형을 고려합니다.
| CNI 플러그 인 | 네트워킹 모델 | 사용 사례 강조 표시 |
|---|---|---|
| Azure CNI 오버레이 | 오버레이 | - VNET IP 보존에 가장 적합 - API Server에서 지원하는 최대 노드 수 + 노드당 250개 Pod - 더 간단한 구성 - 직접 외부 Pod IP 액세스 없음 |
| Azure CNI Pod 서브넷 | 플랫 | - 직접 외부 Pod 액세스 - 효율적인 VNet IP 사용 또는 대규모 클러스터 확장 지원을 위한 모드 |
| Azure CNI 노드 서브넷 | 플랫 | - 직접 외부 Pod 액세스 - 더 간단한 구성 - 제한된 크기 조정 - VNet IP의 비효율적인 사용 |
컨테이너용 Application Gateway를 CNI 오버레이 또는 CNI가 사용하도록 설정된 클러스터로 프로비전하는 경우 컨테이너용 Application Gateway는 의도한 네트워크 구성을 자동으로 검색합니다. CNI 오버레이 또는 CNI를 지정하기 위해 게이트웨이 또는 수신 API 구성에는 변경이 필요하지 않습니다.
컨테이너용 CNI 오버레이 및 Application Gateway
Pod의 프라이빗 CIDR 공간에 대한 Azure 네트워킹 스택에 별도의 라우팅 도메인이 만들어지며, 이때 Pod 간 직접 통신을 위한 오버레이 네트워크가 만들어집니다. 컨테이너용 Application Gateway가 프로비전되면 오버레이 라우팅 도메인이 컨테이너 서브넷용 Application Gateway로 더 확장되어 컨테이너용 Application Gateway에서 Pod로 직접 요청을 프록시할 수 있습니다.
컨테이너용 Application Gateway는 클러스터 내에서 실행되는 Azure 네트워크 정책, Calico 및 Cilium Kubernetes 네트워크 정책을 지원합니다.
제한점
- ALB 컨트롤러: CNI 오버레이를 활용하려면 버전 1.7.9 이상을 실행해야 합니다.
- 서브넷 크기: 컨테이너 서브넷용 Application Gateway는 /24 접두사여야 합니다. 서브넷당 하나의 배포만 지원됩니다. 더 크거나 작은 접두사는 지원되지 않습니다.
- 지역 VNet 피어링: 지역 A의 가상 네트워크에 배포된 컨테이너용 Application Gateway 및 지역 A의 가상 네트워크에 있는 AKS 클러스터 노드는 지원되지 않습니다.
- 글로벌 VNet 피어링: 지역 A의 가상 네트워크에 배포된 컨테이너용 Application Gateway 및 지역 B의 가상 네트워크에 있는 AKS 클러스터 노드는 지원되지 않습니다.
컨테이너용 CNI 및 Application Gateway
컨테이너용 Application Gateway는 Kubernetes 클러스터 내에서 실행되는 Azure CNI의 다양한 배포를 지원합니다.
- 동적 IP 할당을 위한 Azure CNI
- 정적 블록 할당을 위한 Azure CNI
두 경우 모두 컨테이너용 Application Gateway는 클러스터 내에서 실행되는 Azure 네트워크 정책, Calico 및 Cilium Kubernetes 네트워크 정책을 지원합니다.
컨테이너용 Kubenet 및 Application Gateway
Kubenet은 Application Gateway for Containers에서 지원되지 않습니다. Kubenet을 사용하는 경우 CNI 오버레이로 업그레이드하는 것이 좋습니다.
자주 묻는 질문(FAQ)
Q: 컨테이너용 Application Gateway를 사용하여 기존 클러스터를 CNI에서 CNI 오버레이로 업그레이드할 수 있나요?
A: 예, AKS 클러스터를 CNI에서 CNI 오버레이로 업그레이드하고 컨테이너용 Application Gateway를 업그레이드하면 변경 내용이 자동으로 검색됩니다. 트래픽 중단이 발생할 수 있으므로 유지 관리 기간 동안 업그레이드를 예약하는 것이 좋습니다. 컨트롤러는 CNI 오버레이에 대한 지원을 검색하고 구성하는 데 클러스터 업그레이드 후 몇 분 정도 걸릴 수 있습니다.
경고
업그레이드하기 전에 컨테이너용 Application Gateway 서브넷이 /24인지 확인합니다. 더 큰 서브넷(/23 이상)을 사용하여 CNI에서 CNI 오버레이로 업그레이드하면 중단이 발생하며 컨테이너 서브넷용 Application Gateway를 /24 서브넷 크기로 다시 만들어야 합니다.
Q: Kubenet을 사용하여 기존 클러스터를 CNI 오버레이로 업그레이드할 수 있나요?
A: 예, 그러나 Kubenet이 있는 클러스터에 컨테이너용 Application Gateway 설치는 지원되지 않습니다. CNI 오버레이로 업그레이드한 후 컨테이너용 Application Gateway를 설치합니다.