의사 결정 기준

완료됨

사용 사례에 가장 적합한 네트워크 플러그 인 선택은 기준에 따라 달라집니다. 각 옵션에는 장단점이 있으며 선택할 때 절충 사항을 고려해야 합니다.

높은 수준의 의사 결정 기준

IPv4 소모

Kubenet은 IP 주소 공간의 보존을 염두에 두고 설계되었습니다. Azure CNI는 Pod에 완벽한 네트워크 연결을 제공하지만 더 많은 IP 주소 공간과 계획이 필요합니다. IPv4 소모는 주소 수가 한도에 도달하여 확장 또는 업그레이드 작업에서 노드를 중지하는 경우입니다. 소모 발생 동안 애플리케이션은 너무 많은 리소스를 요구하고 이를 따라가느라 불안정해집니다.

Kubenet을 사용하면 클러스터에서 실행될 수 있는 모든 잠재적 pod를 위해 많은 수의 IP 주소를 미리 예약할 필요가 없이, 노드가 정의된 IP 주소를 수신할 수 있습니다. Kubenet을 사용하면 IPv4 소모에 대한 걱정을 덜고 대규모 클러스터 지원 및 애플리케이션 요구에 대한 작은 IP 주소 범위를 처리할 수 있습니다.

다음 기본 계산은 네트워크 모델에서 주소 공간을 비교합니다.

  • kubenet: 간단한 /24 IP 주소 범위 하나로 클러스터의 노드를 최대 251개 지원할 수 있습니다(각 Azure Virtual Network 서브넷은 관리 작업을 위해 처음 3개의 IP 주소를 예약함). 이 노드 수로 최대 27,610개의 pod를 지원할 수 있습니다(kubenet을 사용할 경우 노드당 최대 pod 기본값이 110개임).
  • Azure CNI: 동일한 기본/24 서브넷 범위는 클러스터에서 최대 8개의 노드만 지원할 수 있습니다. 이 노드 수로 최대 240개의 pod만 지원할 수 있습니다(Azure CNI를 사용할 경우 노드당 최대 pod 기본값이 30개임).

클러스터 크기

Kubenet에는 클러스터당 최대 400개의 하드 노드가 있는 반면, Azure CNI는 플러그 인 구성 방법에 따라 달라집니다.

연결

Kubenet에서는 UDR(사용자 정의 경로)을 수동으로 관리하고 유지 관리해야 합니다. 클러스터 외부에서 Pod에 도달하려면 부하 분산 장치를 사용해야 합니다. Azure CNI를 사용하는 경우 Pod는 전체 가상 네트워크 연결을 가져오고 연결된 네트워크에서 개인 IP 주소를 통해 직접 연결할 수 있습니다.

다중 클러스터 지원

kubenet에서는 여러 클러스터가 동일한 노드 서브넷을 사용할 수 없습니다. Azure CNI를 사용하면 이 구성이 가능합니다.

대기 시간

Azure CNI에 비해 Kubenet에는 약간의 대기 시간을 도입할 수 있는 추가 홉이 필요합니다. 대기 시간에 민감한 워크로드는 Azure CNI를 사용하여 클러스터에 배포해야 합니다.

추가 기능

Azure CNI는 가상 노드 또는 Azure 네트워크 정책과 같은 Azure CNI 네트워킹을 사용하여 복잡한 네트워크 토폴로지를 지원합니다.

이러한 추가 기능은 다음과 같습니다.

  • 노드 풀당 서브넷
  • IP의 동적 할당
  • 노드 및 Pod 서브넷 할당

Kubenet과 Azure CNI 간의 동작 차이

높은 수준의 조건 외에도 기능 지원에는 많은 동작 차이와 불일치가 있습니다.

기능 kubenet Azure CNI Azure CNI 오버레이 Cilium으로 구동되는 Azure CNI
기존 또는 새 가상 네트워크에 클러스터 배포 지원됨 - UDR이 수동 적용됨 지원됨 지원 지원됨
Pod - Pod 연결 지원 여부 지원 지원 지원 여부
Pod - VM 연결, 동일한 가상 네트워크의 VM Pod에 의해 시작된 경우 작동함 두 가지 방식 작동 Pod에 의해 시작된 경우 작동함 Pod에 의해 시작된 경우 작동함
Pod - VM 연결, 피어링된 가상 네트워크의 VM Pod에 의해 시작된 경우 작동함 두 가지 방식 작동 Pod에 의해 시작된 경우 작동함 Pod에 의해 시작된 경우 작동함
VPN 또는 Express 경로를 사용하여 온-프레미스 액세스 Pod에 의해 시작된 경우 작동함 두 가지 방식 작동 Pod에 의해 시작된 경우 작동함 Pod에 의해 시작된 경우 작동함
서비스 엔드포인트에 의해 보호되는 리소스 액세스 지원 여부 지원 지원됨
프라이빗 엔드포인트에서 노출된 리소스에 대한 액세스 지원됨 지원 여부
부하 분산 장치 서비스, App Gateway 또는 수신 컨트롤러를 사용하는 Expose Kubernetes 서비스 지원 여부 지원 지원됨 오버레이 모드를 사용할 때에도 동일한 제한 사항
기본 Azure DNS 및 프라이빗 영역 지원 여부 지원 지원됨
Windows 노드 풀 지원 지원되지 않음 지원됨 지원됨 Linux에서만 사용 가능
가상 노드 지원되지 않음 지원됨 지원되지 않음
하나의 서브넷을 공유하는 여러 클러스터 지원되지 않음 지원됨 지원됨
지원되는 네트워크 정책 Calico Calico 및 Azure 네트워크 정책 Calico, Azure 네트워크 정책, Cilium Ciliuim