다음을 통해 공유


빠른 시작: Azure Resource Manager 템플릿을 사용하여 Kubernetes 클러스터 배포

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

이 빠른 시작에서는 ARM(Azure Resource Manager) 템플릿을 사용하여 AKS Arc에서 Kubernetes 클러스터를 배포하는 방법을 보여 줍니다. Azure Arc는 Azure 관리 기능을 어디서나 Kubernetes 클러스터로 확장하여 다양한 환경을 관리하는 통합된 접근 방식을 제공합니다.

시작하기 전에

이 문서에서는 Kubernetes 개념에 대한 기본 지식이 있다고 가정합니다.

ARM 템플릿을 배포하려면 배포하는 리소스에 대한 쓰기 액세스 권한과 Microsoft.Resources/deployments 리소스 종류에 대한 모든 작업에 액세스해야 합니다. 예를 들어 가상 머신을 배포하려면 Microsoft.Compute/virtualMachines/write 및 Microsoft.Resources/deployments/* 권한이 필요합니다. 역할 및 사용 권한 목록은 Azure 기본 제공 역할을 참조하세요.

필수 조건

  • 활성 구독이 있는 Azure 계정.
  • Azure 로컬 버전 23H2 클러스터.
  • 최신 Azure CLI 버전입니다.

1단계: Azure 계정 준비

  1. Azure에 로그인: 터미널 또는 명령 프롬프트를 열고 Azure CLI를 사용하여 Azure 계정에 로그인합니다.

    az login
    
  2. 구독 설정: 구독 ID로 바꾸기 <your-subscription-id> :

    az account set --subscription "<your-subscription-id>"
    

2단계: Azure CLI를 사용하여 SSH 키 쌍 만들기

az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"

또는 ssh-keygen을 사용하여 SSH 키 쌍을 만듭니다.

ssh-keygen -t rsa -b 4096

템플릿을 배포하려면 SSH 쌍에서 공개 키를 제공해야 합니다. 공개 키를 검색하려면 다음 az sshkey show 명령을 사용합니다.

az sshkey show --name "mySSHKey" --resource-group "myResourceGroup" --query "publicKey"

기본적으로 SSH 키 파일은~/.ssh 디렉터리에 만들어집니다. az sshkey create 또는 ssh-keygen 명령을 실행하여 동일한 이름의 기존 SSH 키 쌍을 덮어씁 수 있습니다.

SSH 생성에 대한 자세한 내용은 Azure에서 인증용 SSH 키 생성 및 관리를 참조하세요.

3단계: 템플릿 검토

AKSArc 리포지토리 템플릿 및 매개 변수 파일을 로컬 컴퓨터로 다운로드합니다. 모든 기본값을 검토하고 올바른지 확인합니다.

4단계: 템플릿 배포

Kubernetes 클러스터를 배포하려면 다음 명령을 실행합니다.

az deployment group create \
--name "<deployment-name>" \
--resource-group "<resource-group-name>" \
--template-file "azuredeploy.json" \
--parameters "azuredeploy.parameters.json"

클러스터를 만드는 데 몇 분이 걸립니다. 다음 단계로 넘어가기 전에 클러스터가 성공적으로 배포될 때까지 기다립니다.

5단계: 배포 확인

배포가 완료되면 다음 명령을 사용하여 Kubernetes 클러스터가 실행 중인지 확인합니다.

az aksarc show --resource-group "<resource-group-name>" --name "<cluster-name>" --output table

6단계: 클러스터에 연결

  1. 클러스터에 연결하려면 명령을 실행합니다 az connectedk8s proxy . 이 명령은 클라이언트 컴퓨터에서 프록시 이진 파일을 다운로드하고 실행하고 클러스터와 연결된 kubeconfig 파일을 가져옵니다.

    az connectedk8s proxy --name <cluster name> -g <resource group>
    

    또는 Kubernetes 명령줄 클라이언트 kubectl을 사용합니다. Azure Cloud Shell을 사용하는 경우 kubectl 이 이미 설치되어 있습니다. kubectl을 로컬로 설치하고 실행하려면 명령을 실행합니다az aksarc install-cli.

    명령을 사용하여 Kubernetes 클러스터에 연결하도록 kubectl을 구성합니다az aksarc get-credentials. 이 명령은 자격 증명을 다운로드하고 해당 자격 증명을 사용하도록 Kubernetes CLI를 구성합니다.

    az aksarc get-credentials --resource-group "<resource-group-name>" --name "<cluster-name>"
    
  2. kubectl get 명령을 사용하여 클러스터에 대한 연결을 확인합니다. 이 명령은 클러스터 노드 목록을 반환합니다.

    kubectl get nodes -A --kubeconfig .\<path to kubecofig> 
    

    다음 예제 출력은 이전 단계에서 만든 세 노드를 보여 줍니다. 노드 상태가 준비인지 확인합니다.

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-agentpool-27442051-vmss000000   Ready    agent   10m   v1.27.7
    aks-agentpool-27442051-vmss000001   Ready    agent   10m   v1.27.7
    aks-agentpool-27442051-vmss000002   Ready    agent   11m   v1.27.7
    

7단계: Azure Resource Manager 템플릿을 사용하여 노드 풀 배포(선택 사항)

3단계와 유사하게, AKSArc 리포지토리에서 노드 풀 템플릿 및 매개 변수를 다운로드하고 기본값을 검토합니다.

8단계: 템플릿 배포 및 배포 유효성 검사(선택 사항)

템플릿을 검토하고 적용합니다. 이 프로세스를 완료하는 데 몇 분 정도 걸립니다. Azure CLI를 사용하여 노드 풀이 성공적으로 생성되었는지 확인할 수 있습니다.

az deployment group create \
--name "<deployment-name>" \
--resource-group "<resource-group-name>" \
--template-file "azuredeploy.json" \
--parameters "azuredeploy.parameters.json"
az aksarc nodepool show --cluster-name "<cluster-name>" --resource-group "<resource-group-name>" --name "<nodepool-name>"

템플릿 리소스

connectedClusters

속성 설명
type 리소스 유형. Microsoft.Kubernetes/ConnectedClusters
apiVersion 리소스 API 버전입니다. 2024-01-01
name 리소스 이름. 문자열(필수)
문자 제한: 1-63
유효한 문자: 영숫자, 밑줄 및 하이픈
영숫자로 시작하고 끝납니다.
location 리소스가 있는 지리적 위치입니다. 문자열(필수)입니다.
tags 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿의 태그를 참조 하세요.
extendedLocation 가상 머신의 확장된 위치입니다. ExtendedLocation
identity 구성된 경우 연결된 클러스터의 ID입니다.
properties 연결된 클러스터의 속성입니다.

ProvisionedClusterInstances

속성 설명
type 리소스 종류 microsoft.hybridcontainerservice/provisionedclusterinstances
apiVersion 리소스 API 버전 2024-01-01
name 리소스 이름 문자열(필수)입니다. 기본값에서 변경하지 마세요.
properties 연결된 클러스터의 속성입니다.
extendedLocation 클러스터의 확장된 위치입니다. ExtendedLocation

ExtendedLocation

속성 설명
name 확장된 위치의 ID입니다. string
type 확장된 위치의 형식입니다. CustomLocation

다음 단계

AKS Arc 개요