다음을 통해 공유


Azure Local에서 Windows nodepool 기능 사용 안 함

적용 대상: Azure Local, 버전 23H2

Azure Local을 설치하면 Azure Linux, Windows Server 2019 및 Windows Server 2022의 3개 VHD(가상 하드 디스크)가 자동으로 다운로드됩니다. VHD는 AKS 클러스터 내의 Kubernetes 노드에 대한 기본 운영 체제 이미지 역할을 하기 때문에 AZURE Local에 AKS를 배포하는 데 필요합니다. 혼합 OS 환경(Windows 및 Linux 노드 모두)의 경우 Windows Server 2019 또는 Windows Server 2022 VHD는 Windows Server 2019 또는 2022 노드 풀을 프로비전하는 데 필요합니다. Linux 노드 풀은 Kubernetes 실행에 최적화된 Azure Linux VHD를 사용합니다. 그러나 Linux 컨테이너만 사용되는 환경에서는 Windows VHD가 필요하지 않습니다. 대역폭 및 스토리지 공간을 절약하는 이 큰 파일을 다운로드하고 저장하지 않도록 Windows 노드 풀 기능을 사용하지 않도록 설정할 수 있습니다.

이 방법 문서에서는 Azure Local에서 AKS(Azure Kubernetes Service)에 대한 Windows nodepool 기능을 사용하지 않도록 설정하는 방법을 안내합니다. 이 기능을 사용하지 않도록 설정하면 Windows 기반 노드 풀을 만드는 데 필요한 크기가 약 20GB인 Windows VHD(가상 하드 디스크)의 자동 다운로드를 방지할 수 있습니다. 이렇게 하면 인터넷 대역폭이 제한된 기업은 특히 워크로드가 Linux 컨테이너만 사용하는 경우 불필요한 다운로드를 방지할 수 있습니다. 이 기능은 대역폭 사용을 최적화하고 Windows 노드가 필요하지 않은 환경에 대한 리소스 관리를 간소화하는 데 도움이 됩니다.

시작하기 전에

시작하기 전에 다음 필수 조건을 갖추고 있는지 확인합니다.

  • Azure 로컬 배포. 이 문서는 Azure Local 릴리스 2411을 이미 배포한 경우에만 적용됩니다. Azure 로컬 릴리스 2411을 배포하기 전에 이 문서의 명령을 실행할 수 없습니다. 현재는 초기 Azure 로컬 릴리스 2411 배포 전에 이 변경을 수행할 수 있는 기능을 지원하지 않습니다.
  • Azure 로컬 구성을 업데이트할 수 있는 Azure RBAC 권한 다음 역할이 있는지 확인합니다. 자세한 내용은 배포에 필요한 권한을 참조하세요.
    • Azure 로컬 관리자
    • 판독기
  • 사용자 지정 위치입니다. 사용자 지정 위치의 이름입니다. 사용자 지정 위치는 Azure 로컬 배포 중에 구성됩니다. Azure Portal에 있는 경우 Azure 로컬 시스템 리소스의 개요 > 서버 페이지로 이동합니다. 클러스터에 대한 사용자 지정 위치가 표시됩니다.
  • Azure 리소스 그룹. Azure Local이 배포되는 Azure 리소스 그룹입니다.

구성을 간소화하기 위해 다음 단계에서는 이 문서에서 참조하는 환경 변수를 정의합니다. 표시된 값을 사용자 고유의 값으로 바꿔야 합니다.

환경 변수에서 사용자 지정 위치 및 리소스 그룹 값을 설정합니다.

$customlocationName = <The custom location name for Azure Local>
$resourceGroup = <The Azure resource group in which Azure Local is deployed>

다음으로, 다음 명령을 실행하여 매개 변수를 clusterName 가져옵니다. 이 매개 변수는 Azure Local에 배포한 Arc Resource Bridge의 이름입니다.

az customlocation show -n $customlocationName -g $resourceGroup --query hostResourceId

예상 출력:

/subscriptions/f3dwer-00000-4383-2345-00000/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge

이 출력 sanjose-arcbridge 에서는 Azure 로컬 클러스터에 배포한 Arc 리소스 브리지의 이름입니다. 이 이름은 배포에 따라 다릅니다.

$clusterName = <Name of Arc resource bridge deployed on the Azure Local cluster>

다음으로, 사용자 지정 위치에 배포한 AKS Arc 확장의 이름을 가져옵니다. 이 이름을 얻으려면 다음 명령을 실행하여 사용자 지정 위치에 설치된 확장을 나열합니다.

az customlocation show -n $customlocationID -g $resourceGroup --query clusterExtensionIds -o tsv

예상 출력:

/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/hybridaksextension
/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/vmss-hci

사용자 지정 위치에 AKS Arc 및 Arc VM 관리라는 두 개의 확장이 설치되어 있어야 합니다. AKS의 확장 이름을 환경 변수에 복사합니다. 예제 출력에서 확장 이름은 .입니다 hybridaksextension. 표시되는 내용과 다를 수 있습니다.

$extensionName = <Name of AKS Arc extension you deployed on the custom location>

확장 이름이 있으면 다음 매개 변수에 대한 변수를 만든 다음 Windows nodepool 기능을 사용하지 않도록 설정합니다.

$extensionVersion = "$(az k8s-extension show -n $extensionName  -g $resourceGroup -c $clusterName --cluster-type appliances --query version -o tsv)"
$releaseTrain = "$(az k8s-extension show -n $extensionName -g $resourceGroup -c $clusterName --cluster-type appliances --query releaseTrain -o tsv)"
az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes

대체 옵션: 원격 데스크톱을 통해 Azure 로컬 물리적 노드에 연결한 후 Windows nodepool 사용 안 함

어떤 이유로 Windows nodepool을 사용하지 않도록 설정하기 위해 Azure CloudShell 또는 Azure에 연결된 컴퓨터를 사용할 수 없는 경우 원격 데스크톱을 사용하여 Azure 로컬 물리적 노드 중 하나에 연결한 후 Windows nodepool을 사용하지 않도록 설정할 수 있습니다. 먼저 Azure에 로그인해야 합니다.

az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes 

Windows 노드 풀 기능을 사용하지 않도록 설정했는지 확인

다음과 같이 실행 az k8s-extension show하여 구성 설정이 적용되었는지 확인할 수 있습니다.

az k8s-extension show --name $extensionName --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --query configurationSettings 

예상 출력:

...
"disable-windows-nodepool": "true",
...

다음으로, 다음 명령을 실행하여 Windows 노드 풀을 사용하지 않도록 설정했는지 확인합니다.

az aksarc get-versions --resource-group $resourceGroup --custom-location $customlocationName

출력 osType=Windows 은 각 Kubernetes 버전 옵션에 대해 "Windows nodepool 기능을 사용할 수 false없음"으로 표시되어야 하며 ready 상태는 다음과 같습니다.

...
"1.27.7": {
            "readiness": [
              {
                "errorMessage": null,
                "osSku": "CBLMariner",
                "osType": "Linux",
                "ready": true
              },
              {
                "errorMessage": "Windows nodepool feature is disabled",
                "osSku": "Windows2019",
                "osType": "Windows",
                "ready": false
              },
              {
                "errorMessage": "Windows nodepool feature is disabled",
                "osSku": "Windows2022",
                "osType": "Windows",
                "ready": false
              }
            ],
...

FAQ

Azure 로컬 배포의 ATLEAST 1 AKS 클러스터에 Windows 노드 풀 및 Windows 노드 풀을 사용하지 않도록 설정하려고 하면 어떻게 되나요?

기능을 사용하지 않도록 설정하기 전에 Windows nodepool을 수동으로 삭제해야 합니다. 기존 Windows 노드 풀이 있는 경우 이 기능을 사용하지 않도록 설정할 수 없습니다.

Windows 노드 풀을 사용하지 않도록 설정하면 다운로드한 Windows VHD는 어떻게 되나요?

Windows nodepools 기능을 사용하지 않도록 설정하면 이전에 다운로드한 Windows VHD가 자동으로 삭제됩니다. Windows VHD가 Azure 로컬 스토리지 경로에서 제거되었는지 확인할 수 있습니다. 삭제에는 다소 시간이 걸릴 수 있습니다. 확인하기 전에 30분 정도 기다립니다. 사용 가능한 스토리지 용량에 따라 Windows VHD가 라운드 로빈 방식으로 스토리지 경로에 할당되므로 모든 스토리지 경로를 확인해야 합니다.

다음 단계