연습 - AKS Edge Essentials 단일 컴퓨터 K3S 클러스터 배포
이 연습에서는 Linux 및 Windows 노드를 사용하여 단일 컴퓨터 K3S 클러스터에 AKS Edge Essentials를 배포합니다. Azure Cloud Shell을 사용하여 Windows 11 Enterprise에서 Azure VM(가상 머신)을 만들고 AKS Edge Essentials를 쉽게 배포할 수 있도록 PowerShell 스크립트를 실행합니다.
Windows 11 Enterprise를 사용하여 Azure VM 만들기
Azure Cloud Shell을 사용하여 Windows 11 Enterprise에서 Azure VM을 만들어 보겠습니다.
먼저 Azure 샌드박스를 활성화합니다.
Azure Cloud Shell에서 다음 명령을 실행하여 Azure VM을 만들기 위한 변수를 설정합니다.
resourcegroup="<rgn>[resource group name]</rgn>" vmname="myVM" username="azureuser" let "randomIdentifier=$RANDOM*$RANDOM" adminpassword="Admin-$randomIdentifier-Password!" echo Admin Password: $adminpassword
참고 항목
을 기록해
Admin Password
둡다. 이 시간은 나중에 필요합니다.az vm create 명령을 사용하여 Windows 11 Enterprise에서 Azure VM을 만듭니 다.
az vm create \ --resource-group $resourcegroup \ --name $vmname \ --image MicrosoftVisualStudio:windowsplustools:base-win11-gen2:latest \ --public-ip-sku Standard \ --admin-username $username \ --admin-password $adminpassword \ --size Standard_D2s_v5 \ --security-type TrustedLaunch
VM과 지원 리소스를 만드는 데 몇 분이 걸립니다. 다음 예제 출력은 VM 만들기 작업이 완료되었음을 보여줍니다.
{ "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-rg-0000/providers/Microsoft.Compute/virtualMachines/myVM", "location": "westus3", "macAddress": "00-00-00-00-00-00", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "00.000.000.000", "resourceGroup": "learn-rg-0000", "zones": "" }
AKS Edge Essentials 다운로드
K3s 설치 관리자 및 Windows 노드 파일을 Azure 파일 공유에 다운로드한 다음, 문자 Z가 있는 드라이브를 사용하여 액세스할 수 있도록 VM에 탑재해 보겠습니다.
스토리지 계정 이름, 키 및 Azure 파일 공유 이름을 기록해 둡니다. 나중에 필요합니다.
storageAccountName=$(az storage account list --resource-group $resourcegroup --query '[0].name' -o tsv) storageAccountKey=$(az storage account keys list --resource-group $resourcegroup --account-name $storageAccountName --query '[0].value' -o tsv) storageAccountFile=$(az storage share list --account-name $storageAccountName --account-key $storageAccountKey --query '[0].name' -o tsv) echo Storage Account Name: $storageAccountName echo Storage Account Key: $storageAccountKey echo Storage Account File: $storageAccountFile
Azure 파일 공유에 K3s 설치 관리자, Windows 노드 파일 및 인증서를 다운로드합니다.
curl -L -o ~/clouddrive/MicrosoftRootCertificateAuthority2011.cer "https://download.microsoft.com/download/2/4/8/248D8A62-FCCD-475C-85E7-6ED59520FC0F/MicrosoftRootCertificateAuthority2011.cer" && echo "Downloaded MicrosoftRootCertificateAuthority2011.cer" curl -L -o ~/clouddrive/MicCodSigPCA2011.crt "https://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt" && echo "Downloaded MicCodSigPCA2011.crt" curl -L -o ~/clouddrive/AksEdge-Learn.msi "https://aka.ms/aks-edge/k3s-msi" && echo "Downloaded AksEdge-Learn.msi" curl -L -o ~/clouddrive/AksEdgeWindows-Learn.zip "https://aka.ms/aks-edge/windows-node-zip" && echo "Downloaded AksEdgeWindows-Learn.zip"
VM에 연결할 RDP 파일을 만듭니다.
publicIp=$(az vm show -d -g $resourcegroup -n $vmname --query publicIps -o tsv) echo full address:s:$publicIp > ./myvm.rdp echo username:s:$username >> ./myvm.rdp
RDP 파일을 로컬 컴퓨터에 다운로드합니다.
download myvm.rdp
RDP 파일을 열고 azureuser를 사용자로 사용하여 VM에 연결하고
Admin Password
이전에 암호로 메모를 작성했습니다.팁
Windows 11 Enterprise Azure VM에 처음으로 로그인하는 경우 다음 및 수락을 클릭하여 모든 옵션을 수락할 수 있습니다.
참고 항목
다음 명령은 VM의 PowerShell 명령줄에서 실행됩니다.
시작 메뉴를 클릭하고 PowerShell을 입력하여 PowerShell 명령줄을 엽니다.
다음 PowerShell 명령을 실행하여 문자 Z를 사용하여 VM에 Azure 파일 공유를 탑재합니다. 의 값을
[YOUR_STORAGE_ACCOUNT_NAME]
[YOUR_STORAGE_ACCOUNT_KEY]
[YOUR_STORAGE_ACCOUNT_FILE]
앞에서 적어 두는 값으로 바꿉다.$storageAccountName = "[YOUR_STORAGE_ACCOUNT_NAME]" $storageAccountKey = "[YOUR_STORAGE_ACCOUNT_KEY]" $storageAccountFile = "[YOUR_STORAGE_ACCOUNT_FILE]" # Save the password so the drive will persist on reboot cmd.exe /C "cmdkey /add:`"$storageAccountName.file.core.windows.net`" /user:`"localhost\$storageAccountName`" /pass:`"$storageAccountKey`"" # Mount the drive with the letter Z New-PSDrive -Name Z -PSProvider FileSystem -Root "\\$storageAccountName.file.core.windows.net\$storageAccountFile" -Persist
AKS Edge Essentials 배포
이제 VM이 만들어지고 설치 파일이 다운로드되었으므로 AKS Edge Essentials를 쉽게 배포할 수 있도록 PowerShell 스크립트를 실행 AksEdgeQuickStart-v2.ps1
해 보겠습니다.
참고 항목
다음 명령은 VM의 PowerShell 명령줄에서 실행됩니다.
시작 메뉴를 클릭하고 PowerShell을 입력하여 PowerShell 명령줄을 엽니다. 그런 다음, 다음 명령을 실행하여 작업 디렉터리를 다음으로 변경합니다
C:\aksedgeLearn
.if (!(Test-Path -Path "C:\aksedgeLearn")) { New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null } Push-Location "C:\aksedgeLearn"
Windows 인증서 설치:
certutil.exe -addstore -f "AuthRoot" "Z:\\MicrosoftRootCertificateAuthority2011.cer" certutil.exe -addstore -f "CA" "Z:\\MicCodSigPCA2011.crt"
매개 변수를 설정하여 Linux 및 Windows 노드를 사용하여 단일 컴퓨터 K3S 클러스터를 만듭니다. 및
aksedge-config.json
파일은aideuser-config.json
PowerShell 스크립트를AksEdgeQuickStart-v2.ps1
실행하는 데 사용됩니다.$aideuserConfig = @" { "SchemaVersion": "1.1", "Version": "1.0", "AksEdgeProduct": "AKS Edge Essentials - K3s", "AksEdgeProductUrl": "Z:\\AksEdge-Learn.msi", "Azure": { "SubscriptionName": "", "SubscriptionId": "", "TenantId": "", "ResourceGroupName": "", "ServicePrincipalName": "", "Location": "", "CustomLocationOID":"", "Auth":{ "ServicePrincipalId":"", "Password":"" } }, "AksEdgeConfigFile": "aksedge-config.json" } "@ echo $aideuserConfig | Out-File -FilePath "aideuser-config.json" $aksedgeConfig = @" { "SchemaVersion": "1.9", "Version": "1.0", "DeploymentType": "SingleMachineCluster", "Init": { "ServiceIPRangeSize": 10 }, "Network": { "NetworkPlugin": "flannel", "InternetDisabled": false }, "User": { "AcceptEula": true, "AcceptOptionalTelemetry": true }, "Machines": [ { "LinuxNode": { "CpuCount": 2, "MemoryInMB": 2048, "DataSizeInGB": 20 }, "WindowsNode": { "CpuCount": 2, "MemoryInMB": 2048 } } ] } "@ echo $aksedgeConfig | Out-File -FilePath "aksedge-config.json"
PowerShell 스크립트를
AksEdgeQuickStart-v2.ps1
다운로드하고 실행합니다.$url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStart-v2.ps1" Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStart-v2.ps1 Unblock-File .\AksEdgeQuickStart-v2.ps1 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force .\AksEdgeQuickStart-v2.ps1 -AideUserConfigFilePath .\aideuser-config.json -AksEdgeConfigFilePath .\aksedge-config.json
참고 항목
설치 프로세스를 완료하는 데 약 30분이 걸립니다.
이 스크립트는 다음 단계를 자동화합니다.
- VM 작업 폴더
C:\aksedgeLearn
에서 스크립트는 Azure/AKS-Edge의 GitHub 보관 파일을 다운로드하고 AKS-Edge-기본 폴더에 압축을 풉니다. Start-AideWorkflow
다음 작업을 수행하는 함수를 호출합니다.- Windows 설치 파일의 압축을 풉
- AKS Edge Essentials MSI를 설치합니다.
- 필요한 호스트 OS 기능(
Install-AksEdgeHostFeatures
)을 설치합니다. - Linux 및 Windows 노드를 사용하여 단일 컴퓨터 K3S 클러스터를 배포합니다.
출력의 마지막 줄을 사용하는 다음 예제에서는 AKS Edge Essentials K3s 배포의 다운로드 및 설치가 성공했음을 보여 줍니다. 에서 로그 파일에 액세스할 수도 있습니다.
C:\aksedgeLearn\aksedgedlog-yymmdd-hhmm.txt
... [01/04/2024 15:29:34] Waiting for Windows node IP address... [01/04/2024 15:29:34] Testing Windows node control channel... [01/04/2024 15:29:37] ...successfully connected to the Windows node [01/04/2024 15:31:39] Waiting for Windows node to transition to ready state (796 seconds remaining) - Waiting for Kubernetes node (myvm-wedge) to reach condition Ready, time remaining = 796 seconds - Kubernetes node (myvm-wedge) reached condition Ready [01/04/2024 15:31:57] AksEdge - copying Kubeconfig into the host. [01/04/2024 15:32:02] AksEdge - new deployment successfully created. * AksEdge VM deployment successfull. Deployment Successful. Step 4: Connect to Arc >> skipping step 4 Duration: 0 hrs 23 mins 13 seconds
- VM 작업 폴더
팁
설치 프로세스를 완료하는 데 약 30분이 걸리므로 다음 학습 단위로 계속 진행할 수 있습니다. 나중에 다시 살펴보겠습니다.