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 역할 기반 액세스 제어)를 사용할 수 있으며, 이를 통해 사용자에게 할당된 역할에 따라 리소스에 대한 액세스를 정의할 수 있습니다. 사용자에게 여러 역할이 할당되면 권한이 결합됩니다. 단일 네임스페이스로 권한 범위를 지정하거나 전체 클러스터에서 권한을 부여할 수 있습니다.
이 자습서에는 Azure CLI 버전 2.0.53 이상이 필요합니다. az --version을 사용하여 버전을 확인합니다. 설치하거나 업그레이드하려면 Azure CLI 설치를 참조하세요.
이 자습서를 사용하려면 Azure PowerShell 버전 5.9.0 이상이 필요합니다. Get-InstalledModule -Name Az을 사용하여 버전을 확인합니다. 설치 또는 업그레이드하려면 Azure PowerShell 설치를 참조하세요.
이 자습서에는 Azure Developer CLI 버전 1.5.1 이상이 필요합니다. azd version을 사용하여 버전을 확인합니다. 설치 또는 업그레이드하려면 Azure Developer CLI 설치를 참조하세요.
Kubernetes CLI 설치
Kubernetes CLI, kubectl을 사용하여 Kubernetes 클러스터에 연결합니다. Azure Cloud Shell을 사용하는 경우 kubectl이 이미 설치되어 있습니다. 명령을 로컬로 실행하는 경우 Azure CLI 또는 Azure PowerShell을 사용하여 kubectl을 설치할 수 있습니다.
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 매개 변수 없이 명령을 다시 시도합니다.
AKS 클러스터가 다른 Azure 리소스와 상호 작용할 수 있도록 Azure 플랫폼은 클러스터 ID를 자동으로 만듭니다. 이 예제에서 클러스터 ID에는 이전 자습서에서 만든 ACR 인스턴스에서 이미지를 끌어올 수 있는 권한이 부여됩니다. 명령을 성공적으로 실행하려면 Azure 구독에 대한 소유자 또는 Azure 계정 관리자 역할이 있어야 합니다.
New-AzAksCluster cmdlet을 사용하여 AKS 클러스터를 만듭니다. 다음 예제에서는 myResourceGroup 리소스 그룹에 myAKSCluster라는 클러스터를 만듭니다. 이 리소스 그룹은 eastus 지역의 이전 자습서에서 만들었습니다.
로그인을 시도한 후 받은 웹 페이지의 localhost URL을 복사합니다 azd auth login.
새 터미널 창에서 다음 curl 요청을 사용하여 로그인합니다. 자리 표시자를 이전 단계에서 복사한 localhost URL로 바꿔 <localhost> 야 합니다.
curl <localhost>
성공적인 로그인은 다음 예제와 같이 HTML 웹 페이지를 출력합니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/">
<title>Login successfully</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
code {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
display: inline-block;
background-color: rgb(242, 242, 242);
padding: 12px 16px;
margin: 8px 0px;
}
</style>
</head>
<body>
<h3>You have logged into Microsoft Azure!</h3>
<p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p>
<h3>Announcements</h3>
<p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p>
<p>You may opt-in to use WAM by running the following commands:</p>
<code>
az config set core.allow_broker=true<br>
az account clear<br>
az login
</code>
</body>
</html>