플러그 인 옵션 식별

완료됨

Pod에서 Pod로의 통신, Pod에서 노드로의 통신 및 경우에 따라 노드에서 Pod로의 통신을 용이하게 하려면 AKS 클러스터에 네트워크 플러그 인이 필요합니다. AKS에서는 kubenet과 Azure CNI라는 두 가지 네트워킹 모델을 사용할 수 있습니다. Azure CNI 오버레이, 동적 IP 할당을 위한 Azure CNI 및 Cilium에서 제공하는 Azure CNI를 비롯하여 Azure CNI에 추가로 향상된 기능이 있습니다. 이러한 각 모델에는 고유한 기능과 제한 사항이 있습니다.

kubenet

기본적으로 AKS 클러스터는 kubenet을 사용합니다. kubenet을 사용하면 클러스터가 배포될 때 Azure Virtual Network, 서브넷, 경로 테이블이 자동으로 만들어지지만 기존 네트워크 리소스를 제공할 수 있습니다. kubenet 사용:

  • 노드가 Azure Virtual Network 서브넷의 IP 주소를 얻습니다.
  • Pod는 노드의 풀 서브넷이 아닌 논리적으로 다른 주소 공간에서 IP 주소를 받습니다.
  • 그러면 Pod가 Azure Virtual Network의 리소스에 연결할 수 있도록 NAT(Network Address Translation)가 구성됩니다.
  • 트래픽의 원본 IP 주소는 노드의 기본 IP 주소로 변환됩니다.

Pod는 노드 간에 서로 직접 통신할 수 없습니다. 대신, 노드에서 Pod 간의 연결에 UDR(사용자 정의 라우팅) 및 IP 전달이 사용됩니다. 기본적으로 UDR 및 IP 전달 구성은 AKS 서비스에서 생성 및 유지 관리하지만 사용자 지정 경로 관리를 위해 자체 경로 테이블을 가져오는 옵션을 선택해야 합니다.

사용자 지정 서브넷에 경로 테이블이 포함되어 있지 않은 경우 AKS는 사용자를 위해 경로 테이블을 만들고 클러스터 수명 주기에 걸쳐 규칙을 추가합니다. 클러스터를 만들 때 사용자 지정 서브넷에 경로 테이블을 포함하는 경우, AKS는 클러스터 작업 중에 기존 경로 테이블을 승인하고 클라우드 공급자 작업에 적절하게 규칙을 추가/업데이트합니다.

AKS 클러스터가 있는 kubenet 네트워크 모델의 다이어그램. 두 노드는 kubenet을 사용하여 가상 네트워크의 노드 서브넷을 통해/NAT 트래픽을 라우팅하는 것으로 표시됩니다.

Azure CNI

Azure CNI 플러그 인은 더 높은 구성 가능성과 더 많은 지원 기능을 갖춘 보다 복잡한 네트워킹 옵션입니다. Azure CNI를 사용하는 경우 Azure CNI 네트워킹을 사용하여 클러스터를 활용하려면 기존 서브넷 및 가상 네트워크가 필요합니다. 가상 네트워크 및 해당 서브넷의 크기는 실행하려는 Pod의 수와 클러스터에 대한 노드 수에 부합되어야 합니다. Azure CNI를 사용하여 다음을 수행합니다.

  • 노드가 Azure Virtual Network 서브넷의 IP 주소 공간을 얻습니다.
  • 각 Pod는 노드 풀 서브넷의 IP 주소를 받고, 다른 pod 및 서비스와 직접 통신할 수 있습니다.
  • 클러스터는 사용자가 지정하는 IP 주소 범위만큼 클 수 있습니다. 그러나 IP 주소 범위를 미리 계획해야 하며, 모든 IP 주소는 AKS 노드가 지원할 수 있는 최대 pod 수에 따라 AKS 노드에서 사용됩니다.

Azure CNI를 사용하면 Azure CNI 네트워크 플러그 인을 활용하기 위해 기존 서브넷 및 가상 네트워크가 필요합니다. 이 서브넷 및 가상 네트워크는 AKS 클러스터를 만드는 시간 동안 만들 수 있습니다.

Azure CNI 네트워크 모델의 다이어그램. Pod는 브리지를 통해 통신하는 것으로 표시됩니다. 각 Pod에는 가상 네트워크의 노드 서브넷에서 할당된 고유한 IP가 있습니다.

Azure CNI 오버레이

Azure CNI 오버레이는 Azure CNI의 향상된 기능이며 가상 네트워크 IP를 Pod에 할당할 때 발생하는 확장성 및 계획 문제를 해결합니다. Azure CNI 오버레이는 프라이빗 CIDR IP를 Pod에 할당합니다. 개인 IP는 가상 네트워크와 별개이며 여러 클러스터에서 다시 사용할 수 있습니다. Azure CNI 오버레이는 Kubenet 클러스터에 적용되는 400개 노드 제한 이상으로 크기 조정될 수 있습니다. Azure CNI 오버레이는 대부분의 클러스터에 권장되는 옵션입니다.

Cilium에서 제공하는 Azure CNI

Cilium으로 구동되는 Azure CNI는 Cilium을 사용하여 고성능 네트워킹, 관측 가능성 및 네트워크 정책 적용을 제공합니다. IPAM(확장성 있는 IP 주소 관리)을 위해 Azure CNI Overlay와 기본적으로 통합됩니다.

또한 Cilium은 별도의 네트워크 정책 엔진 없이도 기본적으로 네트워크 정책을 적용합니다. Cilium에서 구동되는 Azure CNI는 ePBF 프로그램과 보다 효율적인 API 개체 구조를 사용하여 Azure Network Policy Manager의 250개 노드/20-K Pod 제한 이상으로 크기 조정할 수 있습니다.

Cilium으로 구동되는 Azure CNI는 네트워크 정책 적용이 필요한 클러스터에 권장되는 옵션입니다.

사용자 지정 플러그 인 사용

사용자 지정 네트워크 구성을 사용하려는 고객의 경우 네트워킹 플러그 인 요구 사항이 없습니다. Cilium 또는 Flannel과 같은 CNI 공급자 중에서 선택할 수 있습니다. 하지만 Microsoft에서는 다루지 않으므로 자체 설명서를 참조하는 것이 가장 좋습니다.