Share via


빠른 시작: Azure Kubernetes Fleet Manager 리소스를 만들고 Azure CLI를 사용하여 멤버 클러스터에 조인

Azure CLI를 사용하여 Fleet 리소스를 만들고 나중에 AKS(Azure Kubernetes Service) 클러스터를 멤버 클러스터로 연결하여 Azure Kubernetes Fleet Manager(Fleet)를 시작합니다.

필수 조건

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

  • 이 문서에서 참조된 Fleet 및 멤버 클러스터에 대한 설명을 제공하는 이 기능의 개념 개요를 참조하세요.

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.

  • Azure CLI에 로그인하는 데 사용할 수 있는 ID(사용자 또는 서비스 주체)입니다. 이 ID에는 이 빠른 시작에 나열된 단계를 완료하기 위해 Fleet 및 AKS 리소스 종류에 대해 다음과 같은 권한이 있어야 합니다.

    • Microsoft.ContainerService/fleets/read
    • Microsoft.ContainerService/fleets/write
    • Microsoft.ContainerService/fleets/members/read
    • Microsoft.ContainerService/fleets/members/write
    • Microsoft.ContainerService/fleetMemberships/read
    • Microsoft.ContainerService/fleetMemberships/write
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
  • 버전 2.53.1 이상의 Azure CLI를 설치하거나 이 버전으로 업그레이드합니다.

  • az extension add 명령을 사용하여 집합 Azure CLI 확장을 설치하고 버전이 1.0.0 이상인지 확인합니다.

    az extension add --name fleet
    
  • 다음 환경 변수를 설정합니다.

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    
  • az aks install-cli 명령을 사용하여 kubectlkubelogin을 설치합니다.

    az aks install-cli
    
  • Fleet 리소스에 멤버 클러스터로 조인하려는 AKS 클러스터는 지원되는 AKS 버전 내에 있어야 합니다. 여기에서 AKS 버전 지원 정책에 대해 자세히 알아봅니다.

리소스 그룹 만들기

Azure 리소스 그룹은 Azure 리소스가 배포되고 관리되는 논리 그룹입니다. 리소스 그룹을 만들 때 위치를 지정하라는 메시지가 표시됩니다. 이 위치는 리소스 그룹 메타데이터의 스토리지 위치이며 리소스를 만드는 중에 다른 위치를 지정하지 않은 경우 Azure에서 리소스가 실행되는 위치입니다.

Azure 구독을 설정하고 az group create 명령을 사용하여 리소스 그룹을 만듭니다.

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus

다음 출력 예는 리소스 그룹의 성공적인 만드는 것과 유사합니다.

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "eastus",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Fleet 리소스 만들기

나중에 AKS 클러스터를 멤버 클러스터로 그룹화하기 위해 Fleet 리소스를 만들 수 있습니다. 기본적으로 이 리소스는 멤버 클러스터 그룹화 및 업데이트 오케스트레이션을 사용하도록 설정합니다. Fleet 허브를 사용하도록 설정하면 Kubernetes 개체를 멤버 클러스터로 전파, 여러 멤버 클러스터에서 L4 서비스 부하 분산 등의 다른 미리 보기 기능이 사용하도록 설정됩니다.

Important

현재, Fleet 리소스가 만들어지면 Fleet 리소스의 허브 모드를 변경할 수 없습니다.

옵션 1 - 허브 클러스터 없이 Fleet 만들기

새 Fleet 리소스를 만들 때의 기본 환경인 업데이트 오케스트레이션에만 Fleet를 사용하려는 경우 az fleet create 명령을 사용하여 허브 클러스터 없이 Fleet 리소스를 만들 수 있습니다. 자세한 내용은 허브 클러스터(미리 보기)란?을 참조하세요.

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus

출력은 다음 예제 출력과 비슷하게 됩니다.

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "None",
    "userAssignedIdentities": null
  },
  "location": "eastus",
  "name": "fleet-demo",
  "provisioningState": "Succeeded",
  "resourceGroup": "fleet-demo",
  "systemData": {
    "createdAt": "2023-11-03T17:15:19.610149+00:00",
    "createdBy": "<user>",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
    "lastModifiedBy": "<user>",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.ContainerService/fleets"
}

옵션 2 - 허브 클러스터를 사용하여 Fleet 만들기

업데이트 오케스트레이션 외에도 Kubernetes 개체 전파 및 다중 클러스터 부하 분산을 위해 Fleet을 사용하려면 az fleet create 명령으로 --enable-hub 매개 변수를 지정하여 사용하도록 설정된 허브 클러스터로 Fleet 리소스를 만들어야 합니다.

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus --enable-hub

출력은 이전 섹션의 출력 예와 유사해야 합니다.

멤버 클러스터 조인

Fleet은 현재 기존 AKS 클러스터를 멤버 클러스터로 조인하는 것을 지원합니다.

  1. 멤버 클러스터에 대해 다음 환경 변수를 설정합니다.

    export MEMBER_NAME_1=aks-member-1
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
  2. az fleet member create 명령을 사용하여 기존 AKS 클러스터를 Fleet 리소스에 조인합니다.

    # Join the first member cluster
    az fleet member create --resource-group ${GROUP} --fleet-name ${FLEET} --name ${MEMBER_NAME_1} --member-cluster-id ${MEMBER_CLUSTER_ID_1}
    

    출력은 다음 예제 출력과 비슷하게 됩니다.

    {
      "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x",
      "etag": "...",
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x",
      "name": "aks-member-1",
      "provisioningState": "Succeeded",
      "resourceGroup": "<GROUP>",
      "systemData": {
        "createdAt": "2022-10-04T19:04:56.455813+00:00",
        "createdBy": "<user>",
        "createdByType": "User",
        "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00",
        "lastModifiedBy": "<user>",
        "lastModifiedByType": "User"
      },
      "type": "Microsoft.ContainerService/fleets/members"
    }
    
  3. az fleet member list 명령을 사용하여 멤버 클러스터가 Fleet 리소스에 성공적으로 조인되었는지 확인합니다.

    az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
    

    성공하면 출력은 다음 출력 예와 유사해야 합니다.

    ClusterResourceId                                                                                                                                Name          ProvisioningState    ResourceGroup
    -----------------------------------------------------------------------------------------------------------------------------------------------  ------------  -------------------  ---------------
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1  aks-member-1  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2  aks-member-2  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3  aks-member-3  Succeeded            <GROUP>
    

다음 단계