다음을 통해 공유


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

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

필수 조건

리소스 그룹 만들기

  1. 포털에서 리소스 그룹을 검색하여 선택합니다.

  2. + 만들기를 선택합니다.

  3. 리소스 그룹 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    구독 구독을 선택합니다.
    리소스 그룹 test-rg를 입력합니다.
    지역 미국 동부 2를 선택합니다.
  4. Review + create를 선택합니다.

  5. 선택하고생성합니다.

가상 네트워크 만들기

다음 절차에 따라 리소스 서브넷이 있는 가상 네트워크를 만듭니다.

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

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

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

    설정
    프로젝트 세부 정보
    구독 구독을 선택합니다.
    리소스 그룹 test-rg를 선택합니다.
    인스턴스 세부 정보
    Name vnet-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.
  4. 다음을 선택하여 보안 탭으로 이동합니다.

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

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

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

    설정
    서브넷 세부 정보
    서브넷 템플릿 기본값으로 둡니다.
    Name subnet-1을 입력합니다.
    시작 주소 기본값인 10.0.0.0을 그대로 둡니다.
    서브넷 크기 기본값인 /24(256개 주소)를 그대로 둡니다.
  8. 저장을 선택합니다.

  9. 화면 아래쪽에서 검토 + 만들기를 선택하고, 유효성 검사를 통과하면 만들기를 선택합니다.

Azure Bastion 배포

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

참고

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

  1. 포털 상단에 있는 검색 상자에 Bastion을 입력합니다. 검색 결과에서 Bastions 를 선택합니다.

  2. + 만들기를 선택합니다.

  3. Bastion 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 구독을 선택합니다.
    리소스 그룹 test-rg를 선택합니다.
    인스턴스 세부 정보
    Name bastion을 입력합니다.
    지역 미국 동부 2를 선택합니다.
    계층 개발자를 선택합니다.
    가상 네트워크 구성
    가상 네트워크 vnet-1을 선택합니다.
  4. Review + create를 선택합니다.

  5. 선택하고생성합니다.

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

가상 머신 만들기

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

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

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

    설정
    프로젝트 세부 정보
    구독 구독을 선택합니다.
    리소스 그룹 test-rg를 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 vm-1을 입력합니다.
    지역 (미국) 미국 동부 2를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 표준을 선택합니다.
    이미지 Ubuntu Server 24.04 LTS - x64 Gen2를 선택합니다.
    VM 아키텍처 x64(기본값)를 그대로 둡니다.
    크기 크기를 선택합니다.
    관리자 계정
    인증 유형 SSH 공개 키를 선택합니다.
    사용자 이름 사용자 이름을 입력합니다.
    SSH 공개 키 원본 새 키 쌍 생성을 선택합니다.
    키 쌍 이름 vm-1 키를 입력합니다.
    인바운드 포트 규칙
    공용 인바운드 포트 없음을 선택합니다.
  4. 다음: 디스크를 선택하고 다음: 네트워킹을 선택합니다.

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

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

  7. 선택하고생성합니다.

  8. 새 키 쌍 생성 팝업이 나타납니다. 프라이빗 키 다운로드 및 리소스 만들기를 선택합니다.

  9. 프라이빗 키 파일은 컴퓨터에 다운로드됩니다. 개인 키 파일을 컴퓨터의 알려진 위치에 저장합니다. 이 키는 이후 단계에서 Azure Bastion을 사용하여 가상 머신에 연결하는 데 사용됩니다.

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 구성 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    Name 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. Bastion 연결 페이지에서 다음 정보를 입력하거나 선택합니다.

    설정
    인증 유형 로컬 파일에서 SSH 프라이빗 키를 선택합니다.
    사용자 이름 만든 사용자 이름을 입력합니다.
    로컬 파일 다운로드한 vm-1 키 프라이빗 키 파일을 선택합니다.
  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. Bastion 연결 페이지에서 다음 정보를 입력하거나 선택합니다.

    설정
    인증 유형 로컬 파일에서 SSH 프라이빗 키를 선택합니다.
    사용자 이름 만든 사용자 이름을 입력합니다.
    로컬 파일 다운로드한 vm-1 키 프라이빗 키 파일을 선택합니다.
  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 서비스에 대한 자세한 내용은 다음을 참조하세요.