이 빠른 시작에서는 Azure Resource Manager(ARM) 템플릿을 사용하여 노드 운영 체제(OS)로 Azure Container Linux(ACL)를 실행하는 Azure Kubernetes Service(AKS) 클러스터를 만듭니다. 필수 구성 요소를 설치한 후 SSH 키 쌍을 만들고, 템플릿을 검토하고, 템플릿을 배포하고, 클러스터에 연결합니다.
Azure ACL(Container Linux) 고려 사항 및 제한 사항
시작하기 전에 ACL에 대한 다음 고려 사항 및 제한 사항을 검토합니다.
- ACL은 일반적으로 AKS v1.34부터 사용할 수 있습니다.
- ACL에는 보안 부팅 및 vTPM을 사용하여 신뢰할 수 있는 시작 이 필요합니다. 신뢰할 수 없는 시작 변형은 사용할 수 없습니다.
- Arm64의 ACL에서 Trusted Launch 호환성을 사용하려면 Cobalt 기반(v6) SKU가 필요합니다.
-
NodeImage는None유일하게 지원되는 OS(운영 체제) 업그레이드 채널입니다.Unmanaged및SecurityPatch은(는) 변경할 수 없는/usr디렉터리 때문에 ACL과 호환되지 않습니다. - 아티팩트 스트리밍 은 지원되지 않습니다.
- Pod 샌드박싱 은 지원되지 않습니다.
- CVM(기밀 가상 머신) 은 지원되지 않습니다.
- 1세대 VM은 지원되지 않습니다.
사전 요구 사항
메모
Azure Cloud Shell 또는 Azure CLI 로컬 설치를 사용하여 이 빠른 시작에서 명령을 실행할 수 있습니다.
- Azure CLI를 로컬에서 실행하는 경우 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
- 로컬 설치를 사용하는 경우
az login명령을 사용하여 Azure CLI 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요. - 메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
- Azure Container Linux에는 Azure CLI 버전 2.86.0 이상이 필요합니다.
az version명령을 사용하여 설치된 Azure CLI 버전 및 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 명령을 사용합니다az upgrade. - kubectl이 아직 설치되지 않은 경우
az aks install-cli명령을 사용하여 Azure CLI 통해 설치하거나 upstream 지침 따릅니다. - ARM 템플릿을 사용하여 AKS 클러스터를 만들려면 SSH 공개 키를 제공해야 합니다. 이 리소스가 필요한 경우 템플릿을 배포하기 전에 SSH 키 쌍 만들기 섹션으로 이동하여 생성합니다. SSH 키 쌍이 이미 있는 경우 템플릿 검토 섹션으로 건너뛸 수 있습니다.
- 클러스터를 만드는 데 사용하는 ID에는 적절한 최소 권한이 있어야 합니다. AKS의 액세스 및 ID에 대한 자세한 내용은 AKS(Azure Kubernetes Service)에 대한 액세스 및 ID 옵션을 참조하세요.
- ARM 템플릿을 배포하려면 배포하려는 리소스에 대한 쓰기 권한과 Microsoft.Resources/deployments 리소스 유형의 모든 작업에 대한 액세스 권한이 필요합니다. 예를 들어, 가상 머신(VM)을 배포하려면 Microsoft.Compute/virtualMachines/write 및 Microsoft.Resources/deployments/* 권한이 필요합니다. 역할 및 권한 목록은 Azure 기본 제공 역할을 참조하세요.
SSH 키 쌍 만들기
AKS 노드에 액세스하려면 ssh-keygen 명령을 사용해 생성하는 SSH 키 쌍(퍼블릭 및 프라이빗)을 사용하여 연결합니다. 기본적으로 이러한 파일은~/.ssh 디렉터리에 만들어집니다.
ssh-keygen 명령을 실행하면 지정된 위치에 이미 존재하는 동일한 이름의 SSH 키 쌍을 덮어씁니다.
https://shell.azure.com으로 이동하여 브라우저에서 Cloud Shell을 엽니다.
ssh-keygen명령을 실행합니다. 다음 예제에서는 RSA 암호화 및 4096비트 길이를 사용하여 SSH 키 쌍을 만듭니다.ssh-keygen -t rsa -b 4096
SSH 생성에 대한 자세한 내용은 Azure에서 인증용 SSH 키 생성 및 관리를 참조하세요.
템플릿 검토
다음 배포에서는 Azure 빠른 시작 템플릿 ARM 템플릿을 사용합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "aclakscluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"minValue": 0,
"maxValue": 1023,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. Specifying 0 applies the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"minValue": 1,
"maxValue": 50,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "standard_d2s_v3",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2026-03-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "Linux",
"osSKU": "AzureContainerLinux",
"mode": "System"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName')), '2024-02-01').fqdn]"
}
}
}
ARM 템플릿에 정의된 리소스 종류는 Microsoft.ContainerService/managedClusters입니다.
템플릿 배포
Azure에 배포를 선택하여 로그인하고 템플릿을 엽니다.
기본 페이지에서 ‘OS 디스크 크기 GB’, ‘에이전트 수’, ‘에이전트 VM 크기’및 ‘OS 유형’ 기본값을 그대로 두고 다음 템플릿 매개 변수를 구성합니다.
- 구독: Azure 구독을 선택합니다.
- 리소스 그룹: 새로 만들기를 선택합니다. 리소스 그룹의 고유한 이름(예: myACLResourceGroup)을 입력한 다음 확인을 선택합니다.
- OS SKU: AzureContainerLinux를 지정합니다.
- 위치: 미국 서부와 같은 위치를 선택합니다.
- 클러스터 이름: MYACLCluster와 같은 AKS 클러스터의 고유한 이름을 입력합니다.
- DNS 접두사: myaclcluster와 같은 클러스터에 대한 고유한 DNS 접두사를 입력합니다.
- Linux 관리자 사용자 이름: SSH를 사용하여 연결할 사용자 이름(예: azureuser)을 입력합니다.
- SSH 공개 키 원본: 기존 공개 키 사용을 선택합니다.
- 키 쌍 이름: SSH 키 쌍의 public 부분(기본적으로 ~/.ssh/id_rsa.pub의 콘텐츠)을 복사하여 붙여넣습니다.
검토 + 만들기>만들기를 선택합니다.
AKS 클러스터를 만드는 데 몇 분이 걸립니다. 클러스터에 연결하기 전에 배포가 완료 되기를 기다립니다.
클러스터에 연결
Kubernetes 클러스터를 관리하려면 Kubernetes 명령줄 클라이언트인 kubectl을 사용합니다. Azure Cloud Shell을 사용하는 경우 kubectl 이미 설치되어 있습니다.
kubectl을 로컬로 설치하려면 az aks install-cli 명령을 사용합니다.
kubectl명령을 사용하여 Kubernetes 클러스터에 연결하도록az aks get-credentials을 구성합니다. 이 명령은 자격 증명을 다운로드하고 이를 사용하도록 Kubernetes CLI를 구성합니다.az aks get-credentials --resource-group myACLResourceGroup --name myACLClusterkubectl get명령을 사용하여 클러스터에 대한 연결을 확인합니다. 이 명령은 클러스터 노드 목록을 반환합니다.kubectl get nodes다음 예제 출력은 이전 단계에서 만든 세 노드를 보여 줍니다. 노드 상태가 준비 상태인지 확인합니다.
NAME STATUS ROLES AGE VERSION aks-agentpool-12345678-0 Ready agent 6m44s v1.34.0 aks-agentpool-12345678-1 Ready agent 6m46s v1.34.0 aks-agentpool-12345678-2 Ready agent 6m45s v1.34.0
클러스터 삭제
이 빠른 시작에서 만든 리소스가 더 이상 필요하지 않은 경우 Azure 요금을 방지하기 위해 리소스를 정리할 수 있습니다.
az group delete 명령을 사용하여 Azure 리소스 그룹 및 모든 관련 리소스를 삭제합니다.
az group delete --name myACLResourceGroup --yes --no-wait
관련 콘텐츠
이 빠른 시작에서는 ARM 템플릿을 사용하여 ACL(Azure Container Linux) AKS 클러스터를 배포했습니다. ACL에 대한 자세한 내용은 다음 리소스를 참조하세요.