다음을 통해 공유


자습서: AKS(Azure Kubernetes Service)용 OS Guard(미리 보기)를 사용하여 Azure Linux를 사용하여 클러스터 만들기

5부 중 1부인 이 자습서에서는 다음 방법을 알아봅니다.

  • Kubernetes CLI kubectl을 설치합니다.
  • aks-preview Azure CLI 확장을 설치합니다.
  • AzureLinuxOSGuardPreview 기능 플래그를 등록합니다.
  • Azure 리소스 그룹을 만듭니다.
  • OS Guard 클러스터를 사용하여 Azure Linux를 만들고 배포합니다.
  • Azure Linux에 연결하기 위해 OS Guard 클러스터를 사용하도록 kubectl을(를) 구성합니다.

이후 자습서에서는 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 는 OS Guard 상태의 AKS에서 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"
    

리소스 그룹 만들기

Azure 리소스 그룹은 Azure 리소스가 배포되고 관리되는 논리 그룹입니다. 리소스 그룹을 만들 때 위치를 지정해야 합니다. 이 위치는 다음과 같습니다.

  • 리소스 그룹 메타데이터의 스토리지 위치입니다.
  • 리소스를 만들 때 다른 지역을 지정하지 않으면 Azure에서 리소스가 실행되는 위치입니다.

az group create 명령을 사용하여 리소스 그룹을 만듭니다. 명령을 실행하기 전에 각 배포에 대한 고유한 리소스 이름을 보장하기 위해 환경 변수가 선언됩니다.

export REGION="EastUS2"
az group create --name $RESOURCE_GROUP_NAME --location $REGION

예제 출력:

{
  "id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx",
  "location": "EastUS2",
  "managedBy": null,
  "name": "testAzureLinuxOSGuardResourceGroupxxxxx",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

OS Guard(미리 보기) 클러스터를 사용하여 Azure Linux 만들기

매개 변수와 함께 az aks create 명령을 사용하여 --os-sku AzureLinuxOSGuard AKS 클러스터를 만들어 OS Guard 클러스터로 Azure Linux를 프로비전합니다. OS Guard에서 Azure Linux를 사용하려면 FIPS, 보안 부팅vtpm 을 사용하도록 설정해야 합니다. 다음 예제에서는 OS Guard 클러스터를 사용하여 Azure Linux를 만듭니다.

az aks create --name $MY_AZ_CLUSTER_NAME --resource-group $MY_RESOURCE_GROUP_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm

예제 출력:

{
  "id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/testAzureLinuxOSGuardClusterxxxxx",
  "location": "WestUS2",
  "name": "testAzureLinuxOSGuardClusterxxxxx",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "type": "Microsoft.ContainerService/managedClusters"
}

몇 분 후 명령이 완료되면 클러스터에 대한 JSON 형식 정보가 반환됩니다.

kubectl을 사용하여 클러스터에 연결

kubectl 명령을 사용하여 Kubernetes 클러스터에 연결하도록 az aks get-credentials을 구성합니다. 다음 예제에서는 이전에 만든 리소스 그룹 및 클러스터 이름을 사용하여 Azure Linux 컨테이너 호스트 클러스터에 대한 자격 증명을 가져옵니다.

az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME

클러스터 노드 목록을 반환하는 명령을 사용하여 kubectl get nodes 클러스터에 대한 연결을 확인합니다.

kubectl get nodes

예제 출력:

NAME                           STATUS   ROLES   AGE     VERSION
aks-nodepool1-00000000-0       Ready    agent   10m     v1.20.7
aks-nodepool1-00000000-1       Ready    agent   10m     v1.20.7

다음 단계

이 자습서에서는 OS Guard 클러스터를 사용하여 Azure Linux를 만들고 배포했습니다. 다음 자습서에서는 OS Guard 노드 풀이 있는 Azure Linux를 기존 클러스터에 추가하는 방법을 알아봅니다.