Condividi tramite


Creare e configurare un cluster Azure Kubernetes Edge Essentials in grado di eseguire operazioni IoT di Azure

Servizio Azure Kubernetes (AKS) Edge Essentials è una delle piattaforme cluster supportate per Operazioni di Azure IoT. È possibile usare AKS Edge Essentials per creare un cluster Kubernetes gestito da Microsoft e distribuire operazioni IoT di Azure come carico di lavoro. Questo articolo descrive i passaggi per eseguire uno script che crea un cluster Kubernetes Edge Essentials del servizio Azure Kubernetes con le configurazioni necessarie per le operazioni IoT di Azure e quindi connette il cluster ad Azure Arc.

Nota

Le operazioni IoT di Azure supportano AKS Edge Essentials solo quando viene distribuito in cluster a singolo computer k3s. I cluster K8s non sono supportati per AIO e la distribuzione di cluster in più computer è una funzionalità sperimentale.

Prerequisiti per l'esecuzione dello script

Per eseguire lo script, sono necessari i prerequisiti seguenti:

  • Una sottoscrizione di Azure con il ruolo Proprietario o una combinazione di ruoli Collaboratore e Amministratore accesso utenti. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controllo di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizza l'accesso. Se non si dispone di sottoscrizione di Azure, crearne una gratuitamente prima di iniziare.

  • Interfaccia della riga di comando di Azure versione 2.64.0 o successiva installata nel computer di sviluppo. Usare az --version per controllare la versione e az upgrade per aggiornare, se necessario. Per altre informazioni, vedere Installare l'interfaccia della riga di comando di Azure.

  • Installare la versione più recente delle estensioni connectedk8s per l'interfaccia della riga di comando di Azure:

    az extension add --upgrade --name connectedk8s 
    
  • Requisiti hardware: assicurarsi che il computer abbia almeno 16 GB di RAM disponibile, 4 vCPU disponibili e 52 GB di spazio libero su disco riservato per le operazioni IoT di Azure.

Creare un cluster abilitato per Arc

Lo script AksEdgeQuickStartForAio.ps1 automatizza il processo di creazione e connessione di un cluster ed è il percorso consigliato per la distribuzione di operazioni IoT di Azure in AKS Edge Essentials. Questo script esegue le operazioni seguenti:

  • Scarica la versione più recente di k3s AKS Edge Essentials MSI da questo repository.
  • Installa AKS Edge Essentials, distribuisce e crea un cluster k3s singolo sulla tua macchina Windows.
  • Si connette alla sottoscrizione di Azure, crea un gruppo di risorse se non esiste già e connette il cluster ad Arc per creare un cluster Kubernetes abilitato per Arc.
  • Abilita la funzionalità di posizione personalizzata nel cluster Kubernetes abilitato per Arc.
  • Abilita la funzionalità di federazione dell'identità del carico di lavoro nel cluster Kubernetes abilitato per Arc.
  • Distribuisce il provisioning del percorso locale.
  • Configura le regole del firewall nel computer Windows host per il broker MQTT.
  • Nella macchina virtuale Linux, che funge da nodo del piano di controllo Kubernetes:
    • Configura il proxy di porta per l'intervallo IP predefinito del servizio Kubernetes 10.96.0.0/28.
    • Configura le regole della tabella IP:
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

Per eseguire lo script di avvio rapido, seguire questa procedura:

  1. Aprire una finestra di PowerShell con privilegi elevati e modificare la directory in una cartella di lavoro.

  2. Ottenere l'oggetto objectId dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc nel tenant. Eseguire il comando seguente esattamente come scritto, senza modificare il valore GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Eseguire i comandi seguenti:

    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    
  4. [Facoltativo] gateway Azure Arc (anteprima) consente di eseguire l'onboarding dell'infrastruttura in Azure Arc usando solo 7 endpoint. Per usare il gateway Azure Arc con le operazioni di Azure IoT in Azure Kubernetes Service Edge Essentials:

  5. Esegui il comando seguente e sostituisci i valori segnaposto con le tue informazioni.

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    Segnaposto Valore
    SUBSCRIPTION_ID ID della sottoscrizione di Azure. Se non si conosce l'ID sottoscrizione, vedere Trovare la sottoscrizione di Azure.
    TENANT_ID ID del tenant di Microsoft Entra. Se non si conosce l'ID tenant, vedere Trovare il tenant di Microsoft Entra.
    RESOURCE_GROUP_NAME Nome di un gruppo di risorse esistente o di un nome per la creazione di un nuovo gruppo di risorse. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni IoT di Azure.
    LOCATION Un'area di Azure nelle vicinanze. Per l'elenco delle aree di Azure supportate per le operazioni IoT di Azure, vedere Aree supportate.
    CLUSTER_NAME Nome del nuovo cluster da creare.
    ARC_APP_OBJECT_ID Valore dell'ID oggetto recuperato nel passaggio 2.

    È possibile includere altri flag facoltativi quando si esegue AksEdgeQuickStartForAio.ps1. I flag facoltativi sono i seguenti:

    Opzioni facoltative Valore
    enableWorkloadIdentity (anteprima) Abilitato per impostazione predefinita. Anche se è possibile rifiutare esplicitamente prima di distribuire il cluster, non è possibile abilitarlo dopo la creazione del cluster. La federazione dell’identità del carico di lavoro consente di configurare un’identità gestita assegnata dall’utente o la registrazione di app in Microsoft Entra ID per fidarsi dei token da provider di identità esterni, ad esempio Kubernetes. Per configurare la federazione dell'identità dei carichi di lavoro, consulta questo articolo.
    proxy-https Specificare il valore del proxy: https://<proxy-server-ip-address>:<port>.
    proxy-http Specificare il valore del proxy: http://<proxy-server-ip-address>:<port>.
    proxy-skip-range Specificare l'intervallo di skip del proxy: <excludedIP>,<excludedCIDR>. Se viene specificato il http(s)_proxy, allora anche no_proxy deve essere aggiornato a localhost,127.0.0.0/8,192.168.0.0/16,172.17.0.0/16,10.42.0.0/16,10.43.0.0/16,10.96.0.0/12,10.244.0.0/16,.svc,169.254.169.254.

    È possibile aggiungere questi flag come illustrato nell'esempio seguente:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>" --enableWorkloadIdentity:false
    

    Importante

    Le funzionalità di anteprima sono disponibili in auto-servizio, su base adesione volontaria. Le anteprime vengono fornite "così com'è" e "come disponibili" e vengono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di AKS Edge Essentials sono parzialmente coperte dal supporto clienti sulla base del miglior sforzo.

    In caso di problemi durante la distribuzione; Ad esempio, se il computer viene riavviato come parte di questo processo, eseguire di nuovo il set di comandi.

    Eseguire i comandi seguenti per verificare che la distribuzione sia riuscita:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Nell'output del Get-AksEdgeDeploymentInfo comando si noterà che lo stato arc del cluster è Connesso.

Verificare il cluster

Per verificare che il cluster Kubernetes sia abilitato per Azure Arc, eseguire il comando seguente:

kubectl get deployments,pods -n azure-arc

L'output è simile al seguente esempio:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

Passaggi successivi