Exercício – Implantar o cluster K3S de um único computador do AKS Edge Essentials

Concluído

Neste exercício, implantamos o AKS Edge Essentials em um cluster K3S de um único computador com um nó do Linux e do Windows. Usamos o Azure Cloud Shell para criar uma VM (máquina virtual) do Azure com o Windows 11 Enterprise e executamos um script do PowerShell para facilitar a implantação do AKS Edge Essentials.

Criar uma VM do Azure com o Windows 11 Enterprise

Vamos criar a VM do Azure com o Windows 11 Enterprise usando o Azure Cloud Shell.

  1. Comece ativando a área restrita do Azure.

  2. Execute o seguinte comando no Azure Cloud Shell para definir as variáveis para criar a VM do Azure:

    resourcegroup="<rgn>[resource group name]</rgn>"
    vmname="myVM"
    username="azureuser"
    let "randomIdentifier=$RANDOM*$RANDOM"
    adminpassword="Admin-$randomIdentifier-Password!"
    
    echo Admin Password: $adminpassword
    

    Observação

    Anote Admin Password. Você precisará dela mais tarde.

  3. Crie a VM do Azure com o Windows 11 Enterprise usando o comando az vm create:

    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
    

    A criação da VM e dos recursos de suporte demora alguns minutos. O seguinte exemplo de saída mostra que a operação de criação de VM foi bem-sucedida.

    {
        "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": ""
    }
    
    

Baixar o AKS Edge Essentials

Vamos baixar o instalador do K3s e os arquivos do nó do Windows para o compartilhamento de arquivos do Azure e, em seguida, montá-lo na VM para que possamos acessá-lo usando a unidade com a letra Z.

  1. Anote o nome da conta de armazenamento, a chave e o nome do compartilhamento de arquivo do Azure. Isto será necessário mais tarde:

    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
    
  2. Baixe o instalador do K3s, os arquivos de nó do Windows e os certificados para o compartilhamento de arquivo do Azure:

    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"
    
  3. Crie o arquivo RDP para se conectar à VM:

    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
    
  4. Baixe o arquivo RDP no computador local:

    download myvm.rdp
    
  5. Abra o arquivo RDP e conecte-se à VM usando azureuser como o usuário e Admin Password, do qual você fez uma anotação anteriormente, como a senha.

    Dica

    Ao fazer logon pela primeira vez na VM do Azure do Windows 11 Enterprise, você pode aceitar todas as opções clicando em Avançar e Aceitar.

    Observação

    Os comandos a seguir são executados na linha de comando do PowerShell da VM.

  6. Para abrir a linha de comando do PowerShell, clique no menu Iniciar e digite PowerShell.

  7. Execute os comandos do PowerShell a seguir para montar o compartilhamento de arquivo do Azure na VM com a letra Z. Substitua os valores de [YOUR_STORAGE_ACCOUNT_NAME], [YOUR_STORAGE_ACCOUNT_KEY] e [YOUR_STORAGE_ACCOUNT_FILE] pelos valores que você anotou anteriormente:

    $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
    

Implantar o AKS Edge Essentials

Agora que a VM foi criada e os arquivos de instalação baixados, vamos executar o script do PowerShell AksEdgeQuickStart-v2.ps1 para facilitar a implantação do AKS Edge Essentials.

Observação

Os comandos a seguir são executados na linha de comando do PowerShell da VM.

  1. Para abrir a linha de comando do PowerShell, clique no menu Iniciar e digite PowerShell. Depois, execute o seguinte comando para alterar o diretório de trabalho para C:\aksedgeLearn:

    if (!(Test-Path -Path "C:\aksedgeLearn")) {
        New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null
    }
    Push-Location "C:\aksedgeLearn"
    
  2. Instale certificados do Windows:

    certutil.exe -addstore -f "AuthRoot" "Z:\\MicrosoftRootCertificateAuthority2011.cer"
    certutil.exe -addstore -f "CA" "Z:\\MicCodSigPCA2011.crt"
    
  3. Defina os parâmetros para criar um cluster K3S de um único computador com um nó do Linux e do Windows. Os arquivos aideuser-config.json e aksedge-config.json são usados para executar o script do 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"
    
  4. Baixe e execute script do 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
    

    Observação

    O processo de instalação leva cerca de 30 minutos para ser concluído.

    Esse script automatiza as seguintes etapas:

    • Na pasta de trabalho da VM C:\aksedgeLearn, o script baixa o arquivo GitHub de Azure/AKS-Edge e descompacta em uma pasta AKS-Edge-main.
    • Invoca a função Start-AideWorkflow que executa as seguintes tarefas:
      • Descompacta os arquivos de instalação do Windows.
      • Instala o MSI do AKS Edge Essentials.
      • Instala os recursos necessários do sistema operacional do host (Install-AksEdgeHostFeatures).
      • Implanta um cluster K3S de um único computador com um nó do Linux e do Windows.

    O exemplo a seguir, com as últimas linhas da saída, mostra que o download e a instalação da distribuição do K3s do AKS Edge Essentials foram bem-sucedidos. Você também pode acessar o arquivo de log em 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
    

    Screenshot of Windows VM with powershell commands output demonstrating a successful download and installation of AKS Edge Essentials K3s distribution.

Dica

Como o processo de instalação leva cerca de 30 minutos para ser concluído, você pode passar para a próxima unidade de aprendizado. Voltaremos a esse tema mais tarde.