Microsoft SDN(소프트웨어 정의 네트워킹) 배포

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

이 문서에서는 모든 AKS Arc 부하 분산 시나리오에 SDN 소프트웨어 Load Balancer 사용하여 AKS 인프라 및 워크로드 VM을 SDN Virtual Network 배포하는 방법을 설명합니다. Azure Arc에서 사용하도록 설정된 AKS는 Kubernetes 컨테이너 오케스트레이션 플랫폼에서 클라우드 네이티브 애플리케이션을 실행할 수 있는 완전히 지원되는 컨테이너 플랫폼을 제공합니다. 아키텍처는 가상화된 Windows 및 Linux 워크로드 실행을 지원합니다.

제한 사항

다음 기능은 scope 이 GA 릴리스에서 지원되지 않습니다.

  • SDN 가상 네트워크에 Pod 및 컨테이너 연결
    • Pod는 네트워크 공급자로 Flannel 또는 Calico(기본값)를 사용합니다.
  • SDN 네트워크 보안 그룹 사용하여 네트워크 정책 적용
    • SDN 네트워크 보안 그룹 SDN 도구(REST/PowerShell/Windows Admin Center/SCVMM)를 사용하여 AKS Arc 외부에서 구성할 수 있지만 Kubernetes NetworkPolicy 개체는 구성하지 않습니다.
  • AKS Arc VM NIC를 SDN 논리 네트워크에 연결
  • Windows Admin Center 사용하여 설치합니다.
  • AKS Arc VM 연결에 대한 물리적 호스트: VM NIC는 SDN 가상 네트워크에 조인되므로 기본적으로 호스트에서 액세스할 수 없습니다. 지금은 SDN Software Load Balancer 사용하여 공용 IP를 VM에 직접 연결하여 이 연결을 수동으로 사용하도록 설정할 수 있습니다.

사전 요구 사항

Arc에서 SDN으로 사용하도록 설정된 AKS를 배포하려면 환경이 AKS Arc 및 SDN의 배포 조건을 충족하는지 확인합니다.

참고

AKS Arc와 SDN을 통합하려면 네트워크 컨트롤러 및 소프트웨어 Load Balancer 필요합니다. 게이트웨이 VM은 선택 사항입니다.

AKS Arc용 SDN 설치 및 준비

첫 번째 단계는 SDN을 설치하는 것입니다. SDN을 설치하려면 SDN Express 또는 Windows Admin Center 것이 좋습니다. 필요한 모든 SDN 인프라 구성 요소를 배포하는 참조 구성 파일은 소프트웨어 Load Balancer.psd1에서 찾을 수 있습니다.

SDN Express 배포가 완료되면 상태 정상으로 보고하는 화면이 있어야 합니다.

문제가 발생했거나 비정상으로 보고되는 경우 SDN 문제 해결을 참조하세요.

계속하기 전에 SDN이 정상인 것이 중요합니다. 새 환경에 SDN을 배포하는 경우 테스트 VM을 만들고 부하 분산 장치 VIP에 대한 연결을 확인하는 것이 좋습니다. Windows Admin Center 사용하여 SDN 가상 네트워크에 VM을 만들고 연결하는 방법을 참조하세요.

AKS 설치 단계

AKS Arc에 대한 모든 물리적 호스트 머신을 초기화하고 준비합니다. 최신 지침 은 AKS 호스트 배포 를 참조하세요.

AKS-HCI PowerShell 모듈 설치

AKS-HCI PowerShell 모듈 설치에 대한 자세한 내용은 AksHci PowerShell 모듈 설치를 참조하세요.

참고

이 단계를 완료한 후 열려 있는 PowerShell 세션을 새로 고치거나 다시 로드하여 모듈을 다시 로드합니다.

구독에 리소스 공급자 등록

리소스 공급자를 구독에 등록하는 방법에 대한 자세한 내용은 AksHci PowerShell 모듈 설치를 참조하세요.

배포를 위해 머신 준비

배포를 위해 컴퓨터를 준비하는 방법에 대한 자세한 내용은 배포를 위해 머신 준비를 참조하세요.

설치를 위한 AKS 구성

AKS Arc 만들기를 추진하려면 Azure Stack HCI 서버 중 하나를 선택합니다. 설치 전에 수행해야 하는 세 가지 단계가 있습니다.

  1. SDN에 대한 AKS 네트워크 설정을 구성합니다. 예를 들어 다음을 사용하세요.

    1. SDN 가상 네트워크 "10.20.0.0/24"(10.20.0.0 – 10.20.0.255). 가상화된 네트워크이며 모든 IP 서브넷을 사용할 수 있습니다. 이 서브넷은 물리적 네트워크에 존재할 필요가 없습니다.
    2. vSwitch 이름 "External." Azure Stack HCI 서버의 외부 vSwitch입니다. SDN 배포에 사용된 것과 동일한 vSwitch를 사용해야 합니다.
    3. 게이트웨이 "10.20.0.1" 이 주소는 가상 네트워크의 게이트웨이입니다.
    4. DNS 서버 "10.127.130.7." 가상 네트워크의 DNS 서버입니다.
    $vnet = New-AksHciNetworkSetting –name "myvnet" –vswitchName "External" -k8sNodeIpPoolStart "10.20.0.2" -k8sNodeIpPoolEnd "10.20.0.255"
    -ipAddressPrefix "10.20.0.0/24" -gateway "10.20.0.1" -dnsServers "10.127.130.7"
    
    매개 변수 Description
    -name Arc에서 사용하도록 설정된 AKS의 가상 네트워크 이름입니다(소문자여야 함).
    -vswitchName Azure Stack HCI 서버의 외부 vSwitch 이름입니다. SDN 배포에 사용된 것과 동일한 vSwitch를 사용합니다.
    -k8sNodeIpPoolStart
    -k8sNodeIpPoolEnd
    SDN 가상 네트워크의 IP 시작/끝 범위입니다.
    -ipAddressPrefix CIDR 표기법의 가상 네트워크 서브넷.
    -gateway
    -dnsServers
    SDN 가상 네트워크의 게이트웨이 및 DNS 서버.

    이러한 매개 변수에 대한 자세한 내용은 New-AksHciNetworkSetting을 참조하세요.

  2. 1단계에서 사용한 것과 동일한 PowerShell 창에서 VIP 풀을 만들어 AKS에 SDN 부하 분산 논리 네트워크에서 사용할 수 있는 IP를 알립니다.

    $VipPool = New-AksHciVipPoolSetting -name "publicvip" -vipPoolStart "10.127.132.16" -vipPoolEnd "10.127.132.23
    
    매개 변수 Description
    -name SDN 부하 분산 장치를 구성할 때 제공한 "PublicVIP" 논리 네트워크입니다. cmdlet 내에서 이 이름은 소문자여야 합니다.
    -vipPoolStart 공용 부하 분산 장치 VIP 풀에 사용되는 논리 네트워크의 IP 시작 범위입니다. "PublicVIP" SDN 논리 네트워크의 주소 범위를 사용해야 합니다.
    -vipPoolEnd 공용 부하 분산 장치 VIP 풀에 사용되는 논리 네트워크의 IP 끝 범위입니다. "PublicVIP" SDN 논리 네트워크의 주소 범위를 사용해야 합니다.
  3. 2단계에서 사용된 것과 동일한 PowerShell 창에서 대상 SDN 네트워크에 대한 참조를 제공하여 SDN에 대한 AKS 구성을 만들고 이전에 정의한 네트워크 설정($vnet, $vipPool)을 제공합니다.

    Set-AksHciConfig 
    –imageDir "C:\ClusterStorage\Volume1\ImageStore" 
    –workingDir "C:\ClusterStorage\Volume1\WorkDir"
    –cloudConfigLocation "C:\ClusterStorage\Volume1\Config" 
    –vnet $vnet –useNetworkController
    –NetworkControllerFqdnOrIpAddress "nc.contoso.com" 
    –networkControllerLbSubnetRef "/logicalnetworks/PublicVIP/subnets/my_vip_subnet" 
    –networkControllerLnetRef "/logicalnetworks/HNVPA" 
    -vipPool $vipPool
    

    HNVPA 논리 네트워크는 AKS Arc 가상 네트워크의 기본 공급자로 사용됩니다.

    Azure Stack HCI 클러스터 노드에 고정 IP 주소 할당을 사용하는 경우 매개 변수도 제공해야 CloudServiceCidr 합니다. 이 매개 변수는 MOC 클라우드 서비스의 IP 주소이며 Azure Stack HCI 클러스터 노드와 동일한 서브넷에 있어야 합니다. 자세한 내용은 Microsoft 온-프레미스 클라우드 서비스를 참조하세요.

    매개 변수 Description
    –imageDir AKS Arc가 VHD 이미지를 저장하는 경로입니다. 이 경로는 공유 스토리지 경로 또는 SMB 공유여야 합니다.
    –workingDir 모듈의 작은 파일이 저장되는 경로입니다. 이 경로는 공유 스토리지 경로 또는 SMB 공유여야 합니다.
    -cloudConfigLocation 클라우드 에이전트 구성이 저장되는 디렉터리의 경로입니다. 이 경로는 공유 스토리지 경로 또는 SMB 공유여야 합니다.
    -vnet 이전 단계에서 만든 변수의 AksHciNetworkSetting 이름
    -useNetworkController SDN과의 통합을 사용하도록 설정합니다.
    -networkControllerFqdnOrIpAddress 네트워크 컨트롤러 FQDN. 네트워크 컨트롤러 VM에서 를 실행하고 매개 변수를 Get-NetworkController 사용하여 FQDN을 RestName 가져올 수 있습니다.
    -networkControllerLbSubnetRef 네트워크 컨트롤러에 구성된 공용 VIP 논리 네트워크 서브넷에 대한 참조입니다. cmdlet을 실행하여 이 서브넷을 Get-NetworkControllerLogicalSubnet 가져올 수 있습니다. 이 cmdlet을 사용하는 경우 를 LogicalNetworkId로 사용합니다PublicVIP. cmdlet의 New-AksHciVipPoolSettingvipPoolEnd 매개 변수는 VipPoolStart 여기에서 참조되는 서브넷의 일부여야 합니다.
    -networkControllerLnetRef 일반적으로 이 값은 "/logicalnetworks/HNVPA"입니다.
    -vipPool 부하 분산을 위한 프런트 엔드 IP로 사용되는 VIP 풀입니다.

    이러한 매개 변수에 대한 자세한 내용은 Set-AksHciConfig를 참조하세요.

Azure에 로그인하고 등록 설정 구성

여기에 있는 지침에 따라 등록 설정을 구성합니다.

참고

소유자 권한이 없는 경우 Azure 서비스 주체를 사용하는 것이 좋습니다.

AKS 설치

AKS 구성이 완료되면 Azure Stack HCI에 AKS를 설치할 준비가 된 것입니다.

Install-AksHci

설치가 성공하면 컨트롤 플레인 VM(관리 클러스터)이 만들어지고 해당 VmNIC가 SDN 네트워크에 연결됩니다.

HCI 환경에서 SDN 및 AKS에서 로그 수집

HCI의 SDN 및 AKS를 사용하면 가상 네트워크에서 AKS 노드를 격리할 수 있습니다. 격리되므로 새 SDN AKS-HCI 로그 수집 스크립트를 가져오고 부하 분산 장치를 사용하여 노드에서 로그를 검색하는 수정된 명령을 실행해야 합니다.

Install-Module -Name AksHciSdnLogCollector -Repository PSGallery
Get-AksHciLogsSdn

피드백/문제

SDN에 대한 자가 진단 리소스및 AKS-HCI에 대한 자가 진단 리소스를 참조하세요.

다음 단계

다음으로 워크로드 클러스터를 만들고 애플리케이션을 배포할 수 있습니다. Arc에서 사용하도록 설정된 AKS의 모든 AKS VM NIC는 설치 중에 제공된 SDN 가상 네트워크에 원활하게 연결됩니다. SDN 소프트웨어 부하 분산 장치는 모든 Kubernetes 서비스의 외부 부하 분산 장치로도 사용되며 Kubernetes 컨트롤 플레인의 API 서버에 대한 부하 분산 장치 역할을 합니다.