Dela via


Skapa och konfigurera ett AKS Edge Essentials-kluster som kan köra Azure IoT-åtgärder

Azure Kubernetes Service (AKS) Edge Essentials är en av de klusterplattformar som stöds för Azure IoT Operations. Du kan använda AKS Edge Essentials för att skapa ett Microsoft-hanterat Kubernetes-kluster och distribuera Azure IoT Operations på det som en arbetsbelastning. Den här artikeln beskriver stegen för att köra ett skript som skapar ett AKS Edge Essentials Kubernetes-kluster med nödvändiga konfigurationer för Azure IoT Operations och sedan ansluter klustret till Azure Arc.

Kommentar

Azure IoT Operations stöder ENDAST AKS Edge Essentials när de distribueras på k3s-kluster med en enda dator. K8s-kluster stöds inte för AIO och distribution av kluster på flera datorer är en experimentell funktion.

Förutsättningar för att köra skriptet

För att köra skriptet behöver du följande krav:

  • En Azure-prenumeration med rollen Ägare eller en kombination av rollen Deltagare och Administratör för användaråtkomst. Du kan kontrollera åtkomstnivån genom att gå till din prenumeration, välja Åtkomstkontroll (IAM) till vänster i Azure Portal och sedan välja Visa min åtkomst. Om du inte har en Azure-prenumeration skapar du en kostnadsfritt innan du börjar.

  • Azure CLI version 2.64.0 eller senare installerat på utvecklingsdatorn. Använd az --version för att kontrollera din version och az upgrade uppdatera om det behövs. Mer information finns i Installera Azure CLI.

  • Installera den senaste versionen av connectedk8s-tilläggen för Azure CLI:

    az extension add --upgrade --name connectedk8s 
    
  • Maskinvarukrav: Se till att datorn har minst 16 GB tillgängligt RAM-minne, 4 tillgängliga vCPU:er och 52 GB ledigt diskutrymme reserverat för Azure IoT-åtgärder.

Skapa ett Arc-aktiverat kluster

Skriptet AksEdgeQuickStartForAio.ps1 automatiserar processen för att skapa och ansluta ett kluster och är den rekommenderade sökvägen för att distribuera Azure IoT-åtgärder på AKS Edge Essentials. Skriptet utför följande uppgifter:

  • Laddar ner det senaste k3s AKS Edge Essentials MSI från det här arkivet.
  • Installerar AKS Edge Essentials och distribuerar och skapar ett k3s-kluster på din Windows-dator.
  • Ansluter till Azure-prenumerationen, skapar en resursgrupp om den inte redan finns och ansluter klustret till Arc för att skapa ett Arc-aktiverat Kubernetes-kluster.
  • Aktiverar funktionen för anpassad plats i Det Arc-aktiverade Kubernetes-klustret.
  • Aktiverar funktionen för arbetsbelastningsidentitetsfederation i Det Arc-aktiverade Kubernetes-klustret.
  • Distribuerar etablering av lokal sökväg.
  • Konfigurerar brandväggsregler på värddatorn för Windows-värddatorn för MQTT-koordinatorn.
  • På den virtuella Linux-datorn, som fungerar som Kubernetes-kontrollplanets nod:
    • Konfigurerar portproxyn för Kubernetes-tjänstens standard-IP-intervall på 10.96.0.0/28.
    • Konfigurerar IP-tabellreglerna:
      • 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

Utför följande steg för att köra snabbstartsskriptet:

  1. Öppna ett upphöjt PowerShell-fönster och ändra katalogen till en arbetsmapp.

  2. Hämta det objectId Microsoft Entra-ID-program som Azure Arc-tjänsten använder i din klientorganisation. Kör följande kommando exakt som skrivet, utan att ändra GUID-värdet.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Kör följande kommandon:

    $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. [Valfritt] Azure Arc-gateway (förhandsversion) låter dig registrera infrastruktur till Azure Arc med endast 7 slutpunkter. Så här använder du Azure Arc Gateway med Azure IoT Operations på AKS Edge Essentials:

  5. Kör följande kommando och ersätt platshållarvärdena med din information:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    Platshållare Värde
    SUBSCRIPTION_ID ID för din Azure-prenumeration. Om du inte känner till ditt prenumerations-ID kan du läsa Hitta din Azure-prenumeration.
    TENANT_ID ID för din Microsoft Entra-klientorganisation. Om du inte känner till ditt klientorganisations-ID kan du läsa Hitta din Microsoft Entra-klientorganisation.
    RESOURCE_GROUP_NAME Namnet på en befintlig resursgrupp eller ett namn på en ny resursgrupp som ska skapas. Endast en Azure IoT Operations-instans stöds per resursgrupp.
    PLATS En Azure-region nära dig. En lista över Azure IoT Operations azure-regioner som stöds finns i Regioner som stöds.
    CLUSTER_NAME Ett namn för det nya klustret som ska skapas.
    ARC_APP_OBJECT_ID Objekt-ID-värdet som du hämtade i steg 2.

    Det finns andra valfria flaggor som du kan inkludera när du kör AksEdgeQuickStartForAio.ps1. De valfria flaggorna är följande:

    Valfria flaggor Värde
    enableWorkloadIdentity (förhandsversion) Aktiverad som standard. Du kan avregistrera dig innan du distribuerar klustret, men du kan inte aktivera det när klustret har skapats. Med arbetsbelastningsidentitetsfederation kan du konfigurera en användartilldelad hanterad identitet eller appregistrering i Microsoft Entra-ID för att lita på token från externa identitetsprovidrar (IDP:er) som Kubernetes. Om du vill konfigurera arbetsbelastningsidentitetsfederation se den här artikeln.
    proxy-https Ange proxyvärdet: https://<proxy-server-ip-address>:<port>.
    proxy-http Ange proxyvärdet: http://<proxy-server-ip-address>:<port>.
    proxy-skip-range Ange proxyhoppintervallet: <excludedIP>,<excludedCIDR>. Om http(s)_proxy anges bör no_proxy också uppdateras till 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.

    Du kan lägga till dessa flaggor enligt följande exempel:

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

    Viktig

    Förhandsversionsfunktioner är tillgängliga via självbetjäning och opt-in. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. Förhandsversioner av AKS Edge Essentials omfattas delvis av kundsupport enligt bästa möjliga förmåga.

    Om det finns problem under distributionen; Om datorn till exempel startas om som en del av den här processen kör du uppsättningen kommandon igen.

    Kör följande kommandon för att kontrollera att distributionen lyckades:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    I kommandots Get-AksEdgeDeploymentInfo utdata bör du se att klustrets Arc-status är Ansluten.

Verifiera klustret

Kontrollera att Kubernetes-klustret är Azure Arc-aktiverat genom att köra följande kommando:

kubectl get deployments,pods -n azure-arc

Utdata ser ut ungefär som i följande exempel:

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

Nästa steg