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 ochaz 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:
Öppna ett upphöjt PowerShell-fönster och ändra katalogen till en arbetsmapp.
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
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
[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:
- Följ steg 1 för att skapa en Arc-gatewayresurs.
- Observera de URL:er som anges i steg 2 att lägga till i
proxy-skip-range
i steg 2. - Följ steg 3a i dokumentationen för Arc-gatewayen och spara gateway-ID:t.
- I AksEdgeQuickStartForAio.ps1hittar du definitionen för
$aideuserConfig
. Ange värdet förGatewayResourceId
till det gateway-ID som sparades från föregående steg.
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>
. Omhttp(s)_proxy
anges börno_proxy
också uppdateras tilllocalhost,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