다음을 통해 공유


AKS Edge Essentials에 대한 중첩된 가상화 환경 준비

이 문서에서는 AKS(Azure Kubernetes Service) Edge Essentials 클러스터를 배포하기 위해 중첩된 가상화 환경을 설정하는 방법을 설명합니다.

참고 항목

VMware ESXi에서 중첩된 가상화 환경 위에 AKS Edge Essentials를 배포하는 것이 지원됩니다. 다른 중첩된 가상화 배포는 프로덕션 시나리오에서 지원되지 않으며 개발자 용도로 제한됩니다. 이 가이드에서는 Hyper-V 하이퍼바이저를 사용하고 있다고 가정합니다. Microsoft가 아닌 하이퍼바이저(예: KVM)를 사용하는 것은 지원되지 않습니다.

필수 조건

VMware ESXi의 Windows VM에 배포

VMware ESXi 7.08.0 버전은 Windows 가상 머신 위에 AKS Edge Essentials를 호스트할 수 있습니다.

VMware ESXi Windows 가상 머신에서 AKS Edge Essentials를 설정하려면 다음 단계를 사용합니다.

  1. VMware ESXi 호스트에서 Windows 가상 머신을 만듭니다. VMware VM 배포에 대한 자세한 내용은 VMware - Virtual Machines 배포를 참조하세요.

참고 항목

Windows 11 가상 머신을 만드는 경우 Windows 11을 실행하기 위한 Microsoft의 최소 요구 사항을 충족하는지 확인합니다. Windows 11 VM VMware 지원에 대한 자세한 내용은 VMware에서 게스트 OS로 Windows 11 설치를 참조하세요.

  1. 이전 단계에서 만든 가상 머신을 끕니다.
  2. Windows 가상 머신을 선택한 다음 설정 편집을 선택합니다.
  3. 하드웨어 가상화를 검색하고 하드웨어 지원 가상화를 게스트 OS에 노출을 켭니다.
  4. 저장을 선택하고 가상 머신을 시작합니다.
  5. Hyper-V 하이퍼바이저를 설치합니다. Windows 클라이언트를 사용하는 경우 Windows 10에 Hyper-V를 설치해야 합니다. Windows Server를 사용하는 경우 Hyper-V 역할을 설치해야 합니다.

Azure 가상 머신에 배포

Azure VM을 기반으로 AKS Edge Essentials를 실행하는 경우 중첩된 가상화를 지원하는 ACU(Azure Compute Unit)를 사용해야 합니다. 자세한 내용은 ACU(Azure Compute Unit)를 참조하세요. 또한 Azure VM은 외부 가상 스위치 사용을 지원하지 않으므로 VM 호스트 OS 위에 있는 AKS Edge Essentials 배포는 단일 머신 클러스터로 제한됩니다.

배포 환경

이 섹션에서는 중첩된 아키텍처에 대해 설명하고 필요한 기본 구성 요소와 구성을 강조 표시합니다. 이 문서의 뒷부분에서 설명하는 가상화 수준은 다음과 같습니다.

  • L0 호스트 OS: Windows 호스트 운영 체제. 이 OS는 운영 체제 미설치 또는 가상 머신으로 실행될 수 있지만 이 문서에서 L0 호스트 OS 는 중첩된 Windows L1 VM을 만드는 OS입니다.
  • L1 Virtual Machine: L0 Windows 호스트 OS 위에서 실행되는 Windows VM입니다. 이 VM에는 AKS Edge Essentials 설치가 있습니다.
  • L2 Virtual Machine: L1 Windows 가상 머신 위에서 실행되는 AKS Edge Essentials 중첩된 VM(Linux 또는 Windows)

내부 또는 외부 가상 스위치를 사용하여 중첩된 환경을 설정할 수 있습니다. 그러나 이 문서에서는 내부 가상 스위치를 사용 중이라고 가정합니다. L0 Windows 컴퓨터 및 L1/L2 가상 머신의 IP 주소는 네트워킹 시나리오에 따라 변경 될 수 있습니다. 이 문서에서는 172.20.1.0/24 IP 주소 패밀리를 사용한다고 가정합니다.

또한 AKS Edge Essentials Windows 노드 배포는 선택 사항이며 할당된 메모리 요구 사항에 영향을 줍니다. 이 문서에서는 Linux 전용 배포에 대해 설명하지만 배포 JSON 파일에 적절한 구성을 추가하여 Windows 노드를 추가할 수 있습니다.

배포에 외부 가상 스위치를 사용하는 경우 올바른 네트워크 어댑터 및 IP 주소 할당을 사용해야 합니다.

중첩된 가상화 아키텍처를 보여 주는 다이어그램

이전 다이어그램에서는 이 중첩된 아키텍처의 다양한 가상 머신 및 구성 요소를 보여 줍니다.

디바이스/VM OS 수준 부모 메모리 IP 주소
Windows 호스트 OS Windows L0 - 32/64GB 172.20.1.1
Windows-VM-1 Windows L1 Windows 호스트 OS 8/16GB 172.20.1.2
Windows-VM-2 Windows L1 Windows 호스트 OS 8/16GB 172.20.1.3
AKS-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4GB 172.20.1.4
AKS-Edge-Windows-VM-1(선택 사항) Windows L2 Windows-VM-1 4GB 172.20.1.5
AKS-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4GB 172.20.1.6
AKS-Edge-Windows-VM-2(선택 사항) Windows L2 Windows-VM-2 4GB 172.20.1.7

중첩된 가상 머신 설정

다음 가이드는 IP 주소 할당의 예입니다. 네트워크 환경 및 요구 사항에 따라 고유한 할당을 사용할 수 있습니다. 가상 머신 및 가상 하드웨어 할당에 대한 명명 규칙도 제안되지만 사용자 고유의 구성을 사용할 수 있습니다.

  1. 승격된 PowerShell 세션을 엽니다.

  2. 내부 가상 스위치를 만듭니다.

    New-VMSwitch -Name "AKS-Int" -SwitchType Internal
    

    스위치를 올바르게 만든 경우 다음 출력과 비슷한 내용이 표시됩니다.

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. AKS-Int 가상 스위치에 IP 주소를 할당합니다. 이 예제에서는 172.20.1.0/24 네트워크를 사용합니다. Windows 호스트 OS이 가상 스위치 IP 주소를 사용하여 다른 가상 머신 및 AKS Edge Essentials 노드와 통신합니다.

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. 내부 가상 스위치와 내부 네트워크 연결 디바이스를 외부/인터넷 네트워크에 연결하기 위한 NAT 테이블을 만듭니다.

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. Hyper-V 관리자를 사용하여 첫 번째 Windows 가상 머신을 만들고 이름을 Windows-VM-1지정합니다. 가상 머신 만들기에 대한 자세한 내용은 Windows Server 가상화를 참조하세요. VM을 구성하는 동안 다음 매개 변수를 올바르게 설정했는지 확인합니다.

    • 프로세서: 가상 프로세서 수: 4
    • 메모리: RAM: 8192MB
    • 네트워크 어댑터: 가상 스위치: AKS-Int
  6. Windows 설정 및 구성이 완료되면 Windows-VM-1 가상 머신을 끕니다.

  7. Windows-VM-1에 중첩된 가상화를 사용하도록 설정합니다. 중첩된 가상화에 대한 자세한 내용은 중첩된 가상화를 사용하여 Virtual Machine에서 Hyper-V 실행을 참조하세요.

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. Windows-VM-1에 MAC 스푸핑을 사용하도록 설정합니다.

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. Windows-VM-1 가상 머신을 켜고 Hyper-V Connect 옵션을 사용하여 연결합니다.

  10. Windows-VM-1 가상 머신 내에서 관리자 권한 PowerShell 세션을 엽니다.

  11. 가상 머신에 연결된 어댑터를 확인합니다. 연결된 이더넷 어댑터 <이름의 이름을> 찾습니다. 예를 들어 이 더넷 2:

    ipconfig
    

    다음과 비슷하게 표시됩니다.

    PS C:\Windows\system32> ipconfig
    
    Windows IP Configuration
    
    Ethernet adapter Ethernet 2:
    
       Connection-specific DNS Suffix  . : mshome.net
       Link-local IPv6 Address . . . . . : fe80::f4b3:63b3:20d0:2e60%12
       Autoconfiguration IPv4 Address. . : 169.254.233.233
       Subnet Mask . . . . . . . . . . . : 255.255.0.0
       Default Gateway . . . . . . . . . :
    
    Ethernet adapter vEthernet (Default Switch):
    
       Connection-specific DNS Suffix  . :
       Link-local IPv6 Address . . . . . : fe80::545e:7d5:812b:c17b%18
       IPv4 Address. . . . . . . . . . . : 172.21.144.1
       Subnet Mask . . . . . . . . . . . : 255.255.240.0
       Default Gateway . . . . . . . . . :
    
  12. 이전 단계의 이름으로 이더넷 어댑터ifIndex를 가져옵니다.

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. 고정 IP 172.20.1.2 및 게이트웨이 IP 172.20.1.1 및 DNS Server 172.20.1.1을 구성합니다.

    Azure VM을 사용하는 경우 Windows 호스트 OS(L0) DNS 서버를 사용합니다. 명령을 ipconfig /all 사용하여 DNS 서버 주소를 가져옵니다. 웹 브라우저를 사용하여 인터넷에 액세스할 수 있는지 확인합니다. 액세스 권한이 없는 경우 DNS 서버가 올바르게 구성되어 있는지 확인합니다.

    New-NetIPAddress –IPAddress "172.20.1.2" -DefaultGateway "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    Set-DNSClientServerAddress –InterfaceIndex $ifIndex –ServerAddresses "172.20.1.1"
    
  14. AKS Edge Essentials 프로시저에 대한 머신 준비 절차에 따라 Windows-VM-1 가상 머신을 설정합니다.

  15. Windows-VM-1 가상 머신에 대한 모든 AKS Edge Essentials 필수 구성 요소를 설치합니다. 필수 구성 요소에 대한 자세한 내용은 AKS Edge Essentials 요구 사항 및 지원 매트릭스를 참조하세요.

    Install-AksEdgeHostFeatures
    
  16. AKS Edge Essentials 본격적인 배포 구성 파일을 만듭니다. JSON이 만들어지면 필요한 매개 변수를 추가합니다. 외부 가상 스위치 만들기, DNS 서버, 할당된 메모리 및 올바른 고정 IP 주소에 대한 네트워크 어댑터를 변경해야 합니다. 자세한 내용은 AKS Edge Essentials의 전체 Kubernetes 배포를 참조하세요.

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. 이전 단계에서 만든 구성 JSON 파일을 사용하여 AKS Edge Essentials 본격적인 배포를 배포합니다.

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. AKS-Edge-VM-1 가상 머신에서 ping ICMP 트래픽을 사용하도록 설정합니다.

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. Windows-VM-1 가상 머신에서 AKS-Edge-VM-1 Ping:

    ping 172.20.1.4
    
  20. Windows 호스트 OS에서 AKS-Edge-VM-1 Ping:

    ping 172.20.1.4
    

    Warning

    AKS-Edge-VM-1 VM에 대한 ping 요청이 실패하는 경우 IP 구성을 검토하고 네트워크 연결 문제를 해결합니다.

  21. Windows-VM-1 내에서 Windows-VM-2에서 사용할 scaleConfig JSON 파일을 가져옵니다.

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. Windows-VM-2 가상 머신을 만듭니다. 새 Windows-VM-2 매개 변수를 사용하여 4~14단계를 반복합니다.

    • 가상 머신 이름: Windows-VM-2
    • IP 주소: 172.20.1.3
    • 프로세서: 가상 프로세서 수: 4
    • 메모리: 8192MB
    • 네트워크 어댑터(가상 스위치): AKS-Int
    • IP 게이트웨이 주소: 172.20.1.1
    • DNS 서버 주소: 172.20.1.1
  23. Windows-VM-2에서 AKS-Edge-VM-1ping을 테스트합니다.

    ping 172.20.1.4
    

    Warning

    AKS-Edge-VM-1대한 ping 요청이 실패하는 경우 IP 구성을 검토하고 네트워크 연결 문제를 해결합니다.

  24. AKS Edge Essentials에 대한 머신 준비 절차에 따라 Windows-VM-2 가상 머신을 설정합니다.

  25. Windows-VM-2 가상 머신에 대한 모든 AKS Edge Essentials 필수 구성 요소를 설치합니다. 필수 구성 요소에 대한 자세한 내용은 AKS Edge Essentials 요구 사항 및 지원 매트릭스를 참조하세요.

    Install-AksEdgeHostFeatures
    
  26. Windows-VM-1 가상 머신에 연결하고 관리자 권한 PowerShell 세션을 사용하여 AKS Edge 클러스터 조인 구성을 가져옵니다.

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. Windows-VM-1에서 AKS Edge Essentials 크기 조정 구성 파일을 복사하고 적절한 매개 변수를 사용하여 수정합니다. 자세한 내용은 여러 컴퓨터에서 스케일 아웃을 참조 하세요.

  28. 이전 단계의 크기 조정 구성 JSON 파일을 사용하여 Window-VM-2에 AKS-Edge-VM-2를 배포합니다.

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. 노드가 클러스터에 추가되었는지 확인합니다. 클러스터의 모든 노드에서 다음 cmdlet을 실행합니다.

    kubectl get nodes
    

    모든 항목이 올바르게 설정된 경우 클러스터에서 실행 중인 두 Linux 노드가 모두 표시됩니다.

    PS C:\> kubectl get nodes
    NAME                     STATUS   ROLES                       AGE     VERSION
    windows-vm1-ledge        Ready    control-plane,etcd,master   3m45s   v1.24.3+k3s-
    windows-vm2-ledge        Ready    control-plane,etcd,master  10m25s   v1.24.3+k3s-
    

    참고 항목

    K3 및 K8에서 현재 지원되는 Kubernetes 버전 목록은 AKS Edge Essentials 다운로드의 표를 참조하세요.

다음 단계