자습서 - AKS(Azure Kubernetes Service) 클러스터 만들기

Kubernetes는 컨테이너화된 애플리케이션에 대해 분산 플랫폼을 제공합니다. AKS(Azure Kubernetes Service)를 사용하면 프로덕션 준비 Kubernetes 클러스터를 신속하게 만들 수 있습니다.

총 7부 중 3부에 해당하는 이 자습서에서는 Kubernetes 클러스터가 AKS에 배포됩니다. 다음 방법에 대해 설명합니다.

  • ACR(Azure Container Registry)에서 인증을 받을 수 있는 AKS 클러스터를 배포합니다.
  • Kubernetes CLI kubectl을 설치합니다.
  • AKS 클러스터에 연결하도록 kubectl을 구성합니다.

시작하기 전에

이전 자습서에서는 컨테이너 이미지를 만들어 ACR 인스턴스에 업로드했습니다. 자습서 1부터 시작 - AKS 가 따라갈 애플리케이션을 준비합니다.

  • Azure CLI를 사용하는 경우 이 문서에서는 Azure CLI 버전 2.0.53 이상을 실행해야 합니다. az --version을 사용하여 버전을 확인합니다. 설치하거나 업그레이드하려면 Azure CLI 설치를 참조하세요.
  • Azure PowerShell을 사용하는 경우 이 자습서에서는 Azure PowerShell 버전 5.9.0 이상을 실행해야 합니다. Get-InstalledModule -Name Az을 사용하여 버전을 확인합니다. 설치 또는 업그레이드하려면 Azure PowerShell 설치를 참조하세요.
  • Azure 개발자 CLI를 사용하는 경우 이 자습서에서는 Azure 개발자 CLI 버전 1.5.1 이상을 실행해야 합니다. azd version을 사용하여 버전을 확인합니다. 설치 또는 업그레이드하려면 Azure Developer CLI 설치를 참조하세요.

Kubernetes 클러스터 만들기

AKS 클러스터는 Kubernetes RBAC(Kubernetes 역할 기반 액세스 제어)를 사용할 수 있으며, 이를 통해 사용자에게 할당된 역할에 따라 리소스에 대한 액세스를 정의할 수 있습니다. 사용자에게 여러 역할이 할당되면 권한이 결합됩니다. 단일 네임스페이스로 권한 범위를 지정하거나 전체 클러스터에서 권한을 부여할 수 있습니다.

AKS 및 Kubernetes RBAC에 대한 자세한 내용은 AKS에서 Kubernetes RBAC 및 Microsoft Entra ID를 사용하여 클러스터 리소스에 대한 액세스 제어를 참조하세요.

이 자습서에는 Azure CLI 버전 2.0.53 이상이 필요합니다. az --version을 사용하여 버전을 확인합니다. 설치하거나 업그레이드하려면 Azure CLI 설치를 참조하세요.

Kubernetes CLI 설치

Kubernetes CLI, kubectl을 사용하여 Kubernetes 클러스터에 연결합니다. Azure Cloud Shell을 사용하는 경우 kubectl이 이미 설치되어 있습니다. 명령을 로컬로 실행하는 경우 Azure CLI 또는 Azure PowerShell을 사용하여 kubectl을 설치할 수 있습니다.

  • az aks install-cli 명령을 사용하여 kubectl을 로컬로 설치합니다.

    az aks install-cli
    

AKS 클러스터 만들기

AKS 클러스터는 Kubernetes RBAC(Kubernetes 역할 기반 액세스 제어)를 사용할 수 있으며, 이를 통해 사용자에게 할당된 역할에 따라 리소스에 대한 액세스를 정의할 수 있습니다. 사용자에게 여러 역할이 할당되면 권한이 결합됩니다. 단일 네임스페이스로 권한 범위를 지정하거나 전체 클러스터에서 권한을 부여할 수 있습니다. 자세한 내용은 AKS에서 Kubernetes RBAC 및 Microsoft Entra ID를 사용하여 클러스터 리소스에 대한 액세스 제어를 참조하세요.

AKS 리소스 제한 및 지역 가용성에 대한 자세한 내용은 AKS의 할당량, 가상 머신 크기 제한 및 지역 가용성을 참조하세요.

참고 항목

클러스터를 안정적으로 작동하도록 하려면 2개 이상의 노드를 실행해야 합니다.

AKS 클러스터가 다른 Azure 리소스와 상호 작용할 수 있도록 Azure 플랫폼은 클러스터 ID를 자동으로 만듭니다. 이 예제에서 클러스터 ID에는 이전 자습서에서 만든 ACR 인스턴스에서 이미지를 끌어올 수 있는 권한이 부여됩니다. 명령을 성공적으로 실행하려면 Azure 구독에 대한 소유자 또는 Azure 계정 관리자 역할이 있어야 합니다.

  • az aks create 명령을 사용하여 AKS 클러스터를 만듭니다. 다음 예제에서는 myResourceGroup 리소스 그룹에 myAKSCluster라는 클러스터를 만듭니다. 이 리소스 그룹은 eastus 지역의 이전 자습서에서 만들었습니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --generate-ssh-keys \
        --attach-acr <acrName>
    

    참고 항목

    SSH 키를 이미 생성한 경우 linuxProfile.ssh.publicKeys.keyData is invalid와 유사한 오류가 발생할 수 있습니다. 계속하려면 --generate-ssh-keys 매개 변수 없이 명령을 다시 시도합니다.

소유자 또는 Azure 계정 관리자 역할이 필요하지 않도록 하기 위해 ACR에서 이미지를 가져오도록 서비스 주체를 수동으로 구성할 수도 있습니다. 자세한 내용은 서비스 주체를 사용하여 ACR 인증 또는 끌어오기 비밀을 사용하여 Kubernetes에서 인증을 참조하세요. 또는 관리를 용이하게 하기 위해 서비스 주체 대신 관리 ID를 사용할 수 있습니다.

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

  1. az aks get-credentials 명령을 사용하여 Kubernetes 클러스터에 연결하도록 kubectl을 구성합니다. 다음 예제에서는 myResourceGroup에서 myAKSCluster라는 이름의 AKS 클러스터를 위한 자격 증명을 가져옵니다.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. 클러스터 노드 목록을 반환하는 kubectl get nodes 명령을 사용하여 클러스터에 대한 연결을 확인합니다.

    kubectl get nodes
    

    다음 예제 출력은 클러스터 노드 목록을 보여 줍니다.

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-19366578-vmss000002   Ready    agent   47h   v1.25.6
    aks-nodepool1-19366578-vmss000003   Ready    agent   47h   v1.25.6
    

다음 단계

이 자습서에서는 AKS에 Kubernetes 클러스터를 배포하고, 클러스터에 연결하도록 kubectl을 구성했습니다. 다음 방법에 대해 알아보았습니다.

  • ACR에서 인증을 받을 수 있는 AKS 클러스터를 배포합니다.
  • Kubernetes CLI kubectl을 설치합니다.
  • AKS 클러스터에 연결하도록 kubectl을 구성합니다.

다음 자습서에서는 클러스터에 애플리케이션을 배포하는 방법을 알아봅니다.