다음을 통해 공유


자습서: 기존 AKS(Azure Kubernetes Service) 클러스터에 OS Guard(미리 보기) 노드 풀이 있는 Azure Linux 추가

AKS(Azure Kubernetes Service)에서 구성이 동일한 노드는 노드 풀로 그룹화됩니다. 각 노드 풀에는 애플리케이션을 실행하는 VM(가상 머신)이 포함됩니다. 이전 자습서에서는 단일 노드 풀이 있는 OS Guard 클러스터가 있는 Azure Linux를 만들었습니다. 애플리케이션의 다양한 컴퓨팅, 스토리지 또는 보안 요구 사항을 충족하기 위해 사용자 노드 풀을 추가할 수 있습니다.

이 자습서의 5부 중 2부에서 다음 방법을 알아봅니다.

  • OS Guard 노드 풀이 있는 Azure Linux를 기존 클러스터에 추가합니다.
  • 노드 풀의 상태 확인

이후 자습서에서는 OS Guard를 사용하여 노드를 Azure Linux로 마이그레이션하고 원격 분석을 사용하여 클러스터를 모니터링하는 방법을 알아봅니다.

고려사항 및 제한사항

시작하기 전에 OS Guard(미리 보기)를 사용하여 Azure Linux에 대한 다음 고려 사항 및 제한 사항을 검토합니다.

  • OS Guard를 사용하는 Azure Linux에는 Kubernetes 버전 1.32.0 이상이 필요합니다.
  • OS Guard 이미지가 있는 모든 Azure Linux에는 FIPS(Federal Information Process Standard)신뢰할 수 있는 시작이 활성화되어 있습니다.
  • Azure CLI 및 ARM 템플릿은 미리 보기에서 AKS에서 OS Guard를 사용하는 Azure Linux에 대해 유일하게 지원되는 배포 방법입니다. PowerShell 및 Terraform은 지원되지 않습니다.
  • Arm64 이미지는 미리 보기로 AKS의 OS Guard를 사용하는 Azure Linux에서 지원되지 않습니다.
  • NodeImageNone 는 AKS 에서 OS Guard 를 사용하는 Azure Linux 에 대해 유일하게 지원되는 OS 업그레이드 채널입니다. UnmanagedSecurityPatch은 불변의 /usr 디렉터리로 인해 OS Guard와 함께 사용하는 Azure Linux와 호환되지 않습니다.
  • 아티팩트 스트리밍 은 지원되지 않습니다.
  • Pod 샌드박싱 은 지원되지 않습니다.
  • CVM(기밀 가상 머신) 은 지원되지 않습니다.
  • Gen 1 VM(가상 머신) 은 지원되지 않습니다.

필수 조건

aks-preview Azure CLI 확장 설치

중요합니다

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

  • aks-preview 명령을 사용하여 az extension add 확장을 설치합니다.

    az extension add --name aks-preview
    
  • az extension update 명령을 사용하여 확장의 최신 버전으로 업데이트합니다.

    az extension update --name aks-preview
    

Azure Linux OS Guard 미리 보기 기능 플래그 등록

  1. AzureLinuxOSGuardPreview 명령을 사용하여 az feature register 기능 플래그를 등록합니다.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    상태가 Registered로 표시되는 데 몇 분 정도 걸립니다.

  2. 또한 az feature show 명령을 사용하여 등록 상태를 확인합니다.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. 상태가 등록됨으로 표시되면, az provider register 명령을 사용하여 Microsoft.ContainerService 리소스 공급자의 등록을 갱신합니다.

    az provider register --namespace "Microsoft.ContainerService"
    

OS Guard 노드 풀을 사용하여 Azure Linux 추가

명령 az aks nodepool add을 사용하여 Azure Linux를 OS Guard 노드 풀이 있는 상태로 기존 클러스터에 추가하고, --os-sku AzureLinuxOSGuard를 지정합니다. OS Guard에서 Azure Linux를 사용하려면 FIPS, 보안 부팅vtpm 을 사용하도록 설정해야 합니다. 다음 예제에서는 testAzureLinuxOSGuardResourceGroup 리소스 그룹의 testAzureLinuxOSGuardCluster 클러스터에 3개의 노드를 추가하는 osgNodepool이라는 노드 풀을 만듭니다. 환경 변수가 선언되고 고유성을 보장하기 위해 리소스 그룹 및 클러스터 이름에 임의 접미사가 추가됩니다.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export NODEPOOL_NAME="np$RANDOM_SUFFIX"

az aks nodepool add \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name $NODEPOOL_NAME \
    --node-count 3 \
    --os-sku AzureLinuxOSGuard
    --node-osdisk-type Managed 
    --enable-fips-image 
    --enable-secure-boot 
    --enable-vtpm

예제 출력:

{
  "agentPoolType": "VirtualMachineScaleSets",
  "count": 3,
  "name": "osgNodepool",
  "osType": "Linux",
  "provisioningState": "Succeeded",
  "resourceGroup": "testAzureLinuxOSGuardResourceGroupxxxxx",
  "type": "Microsoft.ContainerService/managedClusters/agentPools"
}

비고

노드 풀의 이름은 소문자로 시작해야 하며 영숫자 문자만 포함할 수 있습니다. Linux 노드 풀의 경우 길이는 1자에서 12자 사이여야 합니다.

노드 풀 상태 확인

az aks nodepool list 명령을 사용하여 노드 풀의 상태를 확인하고 리소스 그룹과 클러스터 이름을 지정합니다.

az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME

예제 출력:

[
  {
    "agentPoolType": "VirtualMachineScaleSets",
    "availabilityZones": null,
    "count": 3,
    "enableAutoScaling": false,
    "enableEncryptionAtHost": false,
    "enableFips": false,
    "enableNodePublicIp": false,
    "id": "/subscriptions/REDACTED/resourcegroups/myAKSResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxxxx/agentPools/npxxxxxx",
    "maxPods": 110,
    "mode": "User",
    "name": "npxxxxxx",
    "nodeImageVersion": "AzureLinuxContainerHost-2025.10.03",
    "orchestratorVersion": "1.32.6",
    "osDiskSizeGb": 128,
    "osDiskType": "Managed",
    "osSku": "AzureLinux",
    "osType": "Linux",
    "powerState": {
      "code": "Running"
    },
    "provisioningState": "Succeeded",
    "resourceGroup": "myAKSResourceGroupxxxxx",
    "type": "Microsoft.ContainerService/managedClusters/agentPools",
    "vmSize": "Standard_DS2_v2"
  },
  {
    "agentPoolType": "VirtualMachineScaleSets",
    "availabilityZones": null,
    "count": 3,
    "enableAutoScaling": false,
    "enableEncryptionAtHost": false,
    "enableFips": false,
    "enableNodePublicIp": false,
    "id": "/subscriptions/REDACTED/resourcegroups/myAKSResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxxxx/agentPools/npxxxxxx",
    "maxPods": 110,
    "mode": "User",
    "name": "npxxxxxx",
    "nodeImageVersion": "AzureLinuxOSGuard-2025.10.03",
    "orchestratorVersion": "1.32.6",
    "osDiskSizeGb": 128,
    "osDiskType": "Managed",
    "osSku": "AzureLinuxOSGuard",
    "osType": "Linux",
    "powerState": {
      "code": "Running"
    },
    "provisioningState": "Succeeded",
    "resourceGroup": "myAKSResourceGroupxxxxx",
    "type": "Microsoft.ContainerService/managedClusters/agentPools",
    "vmSize": "Standard_DS2_v2"
  }
]

다음 단계

이 자습서에서는 기존 클러스터에 OS Guard 노드 풀이 있는 Azure Linux를 추가했습니다. 다음 자습서에서는 OS Guard를 사용하여 기존 노드를 Azure Linux로 마이그레이션하는 방법을 알아봅니다.