다음을 통해 공유


컨테이너가 Azure Virtual Network 기능을 사용하도록 설정

풍부한 Azure 네트워크 기능 집합을 컨테이너로 가져오려면 가상 머신을 구동하는 동일한 소프트웨어 정의 네트워킹 스택을 사용할 수 있습니다. Azure Virtual Network CNI(컨테이너 네트워크 인터페이스) 플러그 인은 Azure 가상 머신에 설치됩니다. 플러그 인은 가상 네트워크에서 가상 머신에서 가져온 컨테이너에 IP 주소를 할당합니다. 가상 네트워크에 연결하고 다른 컨테이너 및 가상 네트워크 리소스에 직접 연결합니다.

플러그 인은 연결을 위해 오버레이 네트워크 또는 경로에 의존하지 않으며 가상 머신과 동일한 성능을 제공합니다. 개략적으로 플러그 인은 다음과 같은 기능을 제공하므로 다음을 수행할 수 있습니다.

  • 하나 이상의 컨테이너로 구성 될 수있는 모든 Pod에 가상 네트워크 IP 주소를 할당합니다.
  • Azure ExpressRoute 또는 사이트간 가상 사설망을 통해 피어된 가상 네트워크 및 온-프레미스에 Pod를 연결합니다. Pod는 피어링된 네트워크 및 온 프레미스 네트워크에서도 연결할 수 있습니다.
  • Pod를 사용하여 서비스에 액세스합니다. 예를 들어 Azure Storage 및 Azure SQL Database는 가상 네트워크 서비스 엔드포인트로 보호됩니다.
  • 네트워크 보안 그룹 및 경로를 Pod에 직접 적용합니다.
  • 가상 머신과 마찬가지로 Azure 내부 또는 공용 부하 분산 장치 바로 뒤에 Pod를 배치합니다.
  • Pod에 공용 IP 주소를 할당하여 인터넷에서 직접 액세스할 수 있도록 합니다. Pod는 인터넷에 직접 액세스할 수도 있습니다.
  • Pod를 사용하여 서비스, 수신 컨트롤러 및 Kube DNS와 같은 Kubernetes 리소스와 원활하게 작동합니다. Kubernetes 서비스는 Azure Load Balancer를 통해 내부 또는 외부로 노출될 수도 있습니다.

다음 다이어그램에서는 플러그 인이 Pod에 Azure Virtual Network 기능을 제공하는 방법을 보여 줍니다.

컨테이너 네트워킹 개요를 보여 주는 다이어그램

이 플러그 인은 Linux 및 Windows 플랫폼을 둘 다 지원합니다.

가상 네트워크에 Pod 연결

Pod는 가상 네트워크의 일부인 가상 머신에서 가져옵니다. Pod에 대한 IP 주소 풀은 가상 머신의 네트워크 인터페이스에서 보조 주소로 구성됩니다. Azure CNI는 Pod에 대한 기본 네트워크 연결을 설정하고 풀에서 IP 주소의 사용률을 관리합니다. Pod가 가상 머신에 나타나면 Azure CNI는 풀에서 사용 가능한 IP 주소를 할당하고 Pod를 가상 머신의 소프트웨어 브리지에 연결합니다. Pod가 종료되면 IP 주소가 풀에 다시 추가됩니다. 다음 다이어그램에서는 Pod가 가상 네트워크에 연결하는 방법을 보여 줍니다.

컨테이너 네트워킹 세부 정보를 보여 주는 다이어그램

인터넷 액세스

Pod가 인터넷에 액세스할 수 있도록 플러그 인은 Pod에서 인터넷 바인딩된 트래픽을 변환하도록 NAT(네트워크 주소 변환)에 대한 iptables 규칙을 구성합니다. 패킷의 원본 IP 주소는 가상 머신의 네트워크 인터페이스에서 기본 IP 주소로 변환됩니다. Windows 가상 머신은 가상 머신이 있는 서브넷 외부의 IP 주소로 향하는 NAT 트래픽을 자동으로 원본으로 지정합니다. 일반적으로 가상 네트워크의 IP 범위를 벗어난 IP 주소로 향하는 모든 트래픽은 변환됩니다.

제한

플러그 인은 가상 머신당 최대 250개의 Pod와 가상 네트워크에서 최대 16,000개의 Pod를 지원합니다. 이러한 제한은 AKS(Azure Kubernetes Service)에 대해 다릅니다.

플러그 인 사용

다음 방법으로 플러그 인을 사용하여 Pod 또는 Docker 컨테이너에 대한 기본 가상 네트워크 첨부 파일을 제공할 수 있습니다.

  • Azure Kubernetes Service: 고급 네트워킹 옵션을 선택하여 플러그 인을 사용하여 AKS에 통합합니다. 고급 네트워킹을 사용하면 기존 또는 새 가상 네트워크에 Kubernetes 클러스터를 배포할 수 있습니다. 고급 네트워킹 및 설정 단계에 대한 자세한 내용은 AKS의 네트워크 구성을 참조하세요.
  • AKS 엔진: AKS 엔진을 사용하여 Azure에서 Kubernetes 클러스터 배포를 위한 Azure Resource Manager 템플릿을 생성합니다. 자세한 지침은 AKS 엔진 Kubernetes 클러스터용 플러그 인 배포를 참조 하세요.
  • Azure에서 고유한 Kubernetes 클러스터 만들기: AKS 또는 AKS 엔진과 같은 도구에 의존하지 않고 직접 배포하는 Kubernetes 클러스터의 Pod에 대한 기본 네트워킹을 제공하려면 플러그 인을 사용합니다. 이 경우 플러그 인은 클러스터의 모든 가상 머신에 설치되어 사용이 가능하게 됩니다. 자세한 지침은 직접 배포하는 Kubernetes 클러스터를 위한 플러그 인 배포를 참조하세요.
  • Azure의 Docker 컨테이너에 대한 가상 네트워크 첨부 파일: Kubernetes 클러스터를 만들지 않고 가상 머신에서 가상 네트워크 첨부 파일이 있는 Docker 컨테이너를 만들려는 경우 플러그 인을 사용합니다. 자세한 지침은 Docker용 플러그 인 배포를 참조하세요.