다음을 통해 공유


독립 실행형 Linux Docker 호스트용 컨테이너 네트워킹 배포

Azure CNI 플러그 인은 독립 실행형 Docker 호스트와 Kubernetes 클러스터에 대해 컨테이너/Pod당 네트워킹을 사용하도록 설정합니다. 이 문서에서는 독립 실행형 Linux Docker 호스트에 대한 CNI 플러그 인을 설치하고 구성하는 방법을 알아봅니다.

필수 조건

가상 네트워크 및 Azure 베스천 호스트 만들기

다음 프로시저에서는 리소스 서브넷, Azure Bastion 서브넷 및 베스천 호스트가 포함된 가상 네트워크를 만듭니다.

  1. 포털에서 가상 네트워크를 검색하여 선택합니다.

  2. 가상 네트워크 페이지에서 + 만들기를 선택합니다.

  3. 가상 네트워크 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group 새로 만들기를 선택합니다.
    이름으로 test-rg를 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    Name vnet-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.

    Azure Portal에서 가상 네트워크를 만들기 위한 기본 탭의 스크린샷.

  4. 다음을 선택하여 보안 탭으로 이동합니다.

  5. Azure Bastion 섹션에서 Azure Bastion 사용을 선택합니다.

    Bastion은 브라우저를 사용하여 개인 IP 주소를 사용하여 SSH(보안 셸) 또는 RDP(원격 데스크톱 프로토콜)를 통해 가상 네트워크의 VM에 연결합니다. VM에는 공용 IP 주소, 클라이언트 소프트웨어 또는 특수 구성이 필요하지 않습니다. 자세한 내용은 Azure Bastion이란?을 참조하세요.

    참고 항목

    시간당 가격은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정SKU를 참조하세요. 자습서 또는 테스트의 일부로 Bastion을 배포하는 경우 이 리소스 사용을 마친 후 삭제하는 것이 좋습니다.

  6. Azure Bastion에서 다음 정보를 입력하거나 선택합니다.

    설정
    Azure Bastion 호스트 이름 bastion을 입력합니다.
    Azure Bastion 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip-bastion을 입력합니다.
    확인을 선택합니다.

    Azure Portal에서 가상 네트워크를 만드는 과정에서 Azure 베스천 호스트를 사용하도록 설정하기 위한 옵션 스크린샷.

  7. 다음을 선택하여 IP 주소 탭으로 이동합니다.

  8. 서브넷의 주소 공간 입력란에서 기본 서브넷을 선택합니다.

  9. 서브넷 편집에서 다음 정보를 입력하거나 선택합니다.

    설정
    서브넷 목적 기본값인 기본값을 그대로 둡니다.
    속성 subnet-1을 입력합니다.
    IPv4
    IPv4 주소 범위 기본값인 10.0.0.0/16은 그대로 둡니다.
    시작 주소 기본값인 10.0.0.0을 그대로 둡니다.
    크기 기본값인 /24(256개 주소)를 그대로 둡니다.

    서브넷 구성 세부 정보 스크린샷.

  10. 저장을 선택합니다.

  11. 창 하단에서 검토 + 만들기를 선택합니다. 유효성 검사를 통과하면 만들기를 선택합니다.

베스천 호스트를 배포하는 데 몇 분 정도 소요됩니다. 베스천 호스트가 배포되는 동안 단계를 계속할 수 있습니다.

테스트 가상 머신 만들기

다음 절차에서는 가상 네트워크에 vm-1이라는 테스트 VM(가상 머신)을 만듭니다.

  1. 포털에서 가상 머신을 검색하여 선택합니다.

  2. 가상 머신에서 + 만들기를 선택한 다음, +Azure 가상 머신을 선택합니다.

  3. 가상 머신 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 vm-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 기본값인 표준을 그대로 둡니다.
    이미지 Ubuntu Server 22.04 LTS - x64 Gen2를 선택합니다.
    VM 아키텍처 x64(기본값)를 그대로 둡니다.
    크기 크기를 선택합니다.
    관리자 계정
    인증 유형 암호를 선택합니다.
    사용자 이름 azureuser를 입력합니다.
    암호 암호를 입력합니다.
    암호 확인 암호를 다시 입력합니다.
    인바운드 포트 규칙
    공용 인바운드 포트 없음을 선택합니다.
  4. 페이지 위쪽에 있는 네트워킹 탭을 선택합니다.

  5. 네트워킹 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 vnet-1을 선택합니다.
    서브넷 subnet-1(10.0.0.0/24)을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 고급을 선택합니다.
    네트워크 보안 그룹 구성 새로 만들기를 선택합니다.
    이름으로 nsg-1을 입력합니다.
    나머지는 기본값으로 두고 확인을 선택합니다.
  6. 나머지 설정은 기본값으로 두고 검토 + 만들기를 선택합니다.

  7. 설정을 검토하고 생성를 선택합니다.

참고 항목

베스천 호스트가 있는 가상 네트워크의 가상 머신에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. 베스천 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.

참고 항목

Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 VM에 대한 기본 아웃바운드 액세스 IP를 제공합니다. 기본 아웃바운드 액세스 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.

다음 이벤트 중 하나가 발생하면 기본 아웃바운드 액세스 IP가 사용하지 않도록 설정됩니다.

  • 공용 IP 주소가 VM에 할당됩니다.
  • VM은 아웃바운드 규칙 유무에 관계없이 표준 Load Balancer의 백 엔드 풀에 배치됩니다.
  • Azure NAT Gateway 리소스는 VM의 서브넷에 할당됩니다.

유연한 오케스트레이션 모드에서 가상 머신 확장 집합을 사용하여 만드는 VM에는 기본 아웃바운드 액세스 권한이 없습니다.

Azure의 아웃바운드 연결에 대한 자세한 내용은 Azure의 기본 아웃바운드 액세스아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.

IP 구성 추가

Azure CNI 플러그 인은 가상 머신의 가상 네트워크 인터페이스에서 만든 IP 주소 풀을 기반으로 컨테이너에 IP 주소를 할당합니다. 호스트의 모든 컨테이너에 대해 가상 네트워크 인터페이스에 IP 구성이 있어야 합니다. 서버의 컨테이너 수가 가상 네트워크 인터페이스의 IP 구성보다 많은 경우 컨테이너가 시작되지만 IP 주소는 없습니다.

이 섹션에서는 이전에 만든 가상 머신의 가상 네트워크 인터페이스에 IP 구성을 추가합니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-1을 선택합니다.

  3. 설정에서 네트워킹을 선택합니다.

  4. 네트워크 인터페이스 옆에 있는 네트워크 인터페이스 이름을 선택합니다. 네트워크 인터페이스의 이름은 난수로 vm-1입니다.

  5. 네트워크 인터페이스의 설정에서 IP 구성을 선택합니다.

  6. IP 구성이름에서 ipconfig1을 선택합니다.

  7. ipconfig1 설정에서 개인 IP 주소의 할당을 동적에서 정적으로 변경합니다.

  8. 저장을 선택합니다.

  9. IP 구성으로 돌아갑니다.

  10. + 추가를 선택합니다.

  11. IP 구성 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    속성 ipconfig-2를 입력합니다.
    개인 IP 주소 설정
    할당 고정을 선택합니다.
    IP 주소 '10.0.0.5'를 입력합니다.
  12. 확인을 선택합니다.

  13. ipconfig-2가 보조 IP 구성으로 추가되었는지 확인합니다.

이전 단계를 반복하여 컨테이너 호스트에 배포하려는 컨테이너만큼 많은 구성을 추가합니다.

Docker 설치

이전에 만든 가상 머신에 Docker 컨테이너 엔진을 설치하고 구성해야 합니다.

가상 네트워크를 사용하여 배포한 Azure Bastion 호스트를 사용하여 이전에 만든 가상 머신에 로그인합니다.

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-1을 선택합니다.

  3. vm-1개요에서 연결을 선택한 다음, Bastion을 선택합니다.

  4. 이전 단계에서 가상 머신을 배포할 때 만든 사용자 이름과 암호를 입력합니다.

  5. 연결을 선택합니다.

Ubuntu 컨테이너 호스트에 대한 Docker 설치 지침은 Ubuntu에 Docker 엔진 설치를 참조하세요.

가상 머신에 Docker를 설치한 후 Linux 설치 후 지침을 따릅니다. Linux 설치 후 지침은 Docker 엔진 설치 후 단계를 참조하세요.

가상 머신에 Docker를 설치한 후 이 문서의 단계를 계속 진행합니다.

CNI 플러그 인 설치 및 테스트 컨테이너 만들기

Azure CNI 플러그 인은 GitHub 프로젝트로 유지 관리되며 프로젝트의 GitHub 페이지에서 다운로드할 수 있습니다. 이 문서에서는 가상 머신 내에서 git를 사용하여 플러그 인에 대한 리포지토리를 복제한 다음, 플러그 인을 설치하고 구성합니다.

Azure CNI 플러그 인에 대한 자세한 내용은 Microsoft Azure Container Networking을 참조하세요.

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-1을 선택합니다.

  3. vm-1개요에서 연결을 선택한 다음, Bastion을 선택합니다.

  4. 이전 단계에서 가상 머신을 배포할 때 만든 사용자 이름과 암호를 입력합니다.

  5. 연결을 선택합니다.

  6. 애플리케이션 jq는 CNI 플러그 인에 대한 설치 스크립트에 필요합니다. 다음 예제를 사용하여 애플리케이션을 설치합니다.

    sudo apt-get update
    sudo apt-get install jq
    
  7. 다음으로, CNI 플러그 인에 대한 리포지토리를 복제합니다. 다음 예제를 사용하여 리포지토리를 복제합니다.

    git clone https://github.com/Azure/azure-container-networking.git
    
  8. 권한을 구성하고 CNI 플러그 인을 설치합니다. 설치 스크립트 명령에는 CNI 플러그 인에 대한 버전 번호가 필요합니다. 이 문서를 작성할 때 최신 버전은 v1.4.39입니다. 플러그 인 또는 이전 버전의 최신 버전 번호를 가져오려면 릴리스를 참조하세요.

    cd ./azure-container-networking/scripts
    chmod u+x install-cni-plugin.sh
    sudo ./install-cni-plugin.sh v1.4.39
    chmod u+x docker-run.sh
    
  9. CNI 플러그 인을 사용하여 컨테이너를 시작하려면 플러그 인과 함께 제공되는 특수 스크립트를 사용하여 컨테이너를 만들고 시작해야 합니다. 다음 예제에서는 CNI 플러그 인 스크립트를 사용하여 Alpine 컨테이너를 만듭니다.

    sudo ./docker-run.sh vnetdocker1 default alpine
    
  10. 컨테이너가 이전에 구성한 IP 주소를 받았는지 확인하려면 컨테이너에 연결하고 IP를 확인합니다.

    sudo docker exec -it vnetdocker1 /bin/sh
    
  11. 다음 예제의 ifconfig 명령을 사용하여 IP 주소가 컨테이너에 할당되었는지 확인합니다.

    ifconfig
    

    테스트 컨테이너의 Bash 프롬프트에 있는 ifconfig 출력의 스크린샷.

만든 리소스 사용을 마치면 리소스 그룹과 해당 리소스를 모두 삭제할 수 있습니다.

  1. Azure Portal에서 리소스 그룹을 검색하고 선택합니다.

  2. 리소스 그룹 페이지에서 test-rg 리소스 그룹을 선택합니다.

  3. test-rg 페이지에서 리소스 그룹 삭제를 선택합니다.

  4. 삭제 확인을 위한 리소스 그룹 이름 입력test-rg를 입력한 다음 삭제를 선택합니다.

다음 단계

이 문서에서는 Azure CNI 플러그 인을 설치하고 테스트 컨테이너를 만드는 방법을 알아보았습니다.

Azure 컨테이너 네트워킹과 Azure Kubernetes 서비스에 대한 자세한 내용은 다음을 참조하세요.