Snabbstart: Konfigurera förhandsversionen av Azure IoT Layered Network Management för att Arc-aktivera ett kluster i Azure-miljön
Viktigt!
Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.
Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version görs tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.
Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.
I den här snabbstarten konfigurerar du förhandsversionen av Azure IoT Layered Network Management i ett Purdue-nätverk på nivå 4 och nivå 3. Nätverksnivå 4 har internetåtkomst och nivå 3 har inte det. Du konfigurerar Layered Network Management för att dirigera nätverkstrafik från nivå 3 till Azure. Slutligen kan du Arc-aktivera K3S-klustret på nivå 3, även om det inte är direkt anslutet till Internet.
- Nivå 4 ett AKS-kluster med Layered Network Management distribuerat.
- Nivå 3 är ett K3S-kluster som körs på en virtuell Linux-dator som använder instansen Layered Network Management på nivå 4 för att uppnå anslutning till Azure. Nivå 3-nätverket är konfigurerat för att ha utgående åtkomst till nivå 4-nätverket på portarna 443 och 8084. All annan utgående åtkomst är inaktiverad.
Layered Network Management-arkitekturen kräver DNS-konfiguration på nivå 3-nätverket, där de tillåtna URL:erna återpointas till nivå 4-nätverket. I det här exemplet utförs den här installationen med hjälp av en automatiserad konfiguration som bygger på CoreDNS, standardmekanismen för DNS-matchning som levereras med k3s.
Förutsättningar
De här förutsättningarna är bara för att distribuera Layered Network Management oberoende av varandra och Arc-aktivera klustret på den underordnade nivån.
- Ett AKS-kluster
- En virtuell Azure Linux Ubuntu 22.04.3 LTS-dator
- En jumpbox- eller installationsdator som har åtkomst till Internet och både nivå 3- och nivå 4-nätverken
Distribuera förhandsversionen av layered network management till AKS-klustret
De här stegen distribuerar Layered Network Management till AKS-klustret. Klustret är det översta lagret i ISA-95-modellen. I slutet av det här avsnittet har du en instans av Layered Network Management som är redo att ta emot trafik från Azure Arc-aktiverat kluster nedan och som stöder distributionen av Azure IoT Operations Preview-tjänsten.
Konfigurera
kubectl
för att hantera ditt AKS-kluster från jumpboxen genom att följa stegen i Anslut till klustret.Installera operatorn Layered Network Management med följande Azure CLI-kommando:
az login az k8s-extension create --resource-group <RESOURCE GROUP> --name kind-lnm-extension --cluster-type connectedClusters --cluster-name <CLUSTER NAME> --auto-upgrade false --extension-type Microsoft.IoTOperations.LayeredNetworkManagement --version 0.1.0-preview --release-train preview
Kontrollera att installationen lyckades genom att köra:
kubectl get pods
Du bör se utdata som ser ut som i följande exempel:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Skapa den anpassade resursen Layered Network Management genom att skapa en fil med namnet level4.yaml med följande innehåll:
apiVersion: layerednetworkmgmt.iotoperations.azure.com/v1beta1 kind: Lnm metadata: name: level4 namespace: default spec: image: pullPolicy: IfNotPresent repository: mcr.microsoft.com/oss/envoyproxy/envoy-distroless tag: v1.27.0 replicas: 1 logLevel: "debug" openTelemetryMetricsCollectorAddr: "http://aio-otel-collector.azure-iot-operations.svc.cluster.local:4317" level: 4 allowList: enableArcDomains: true domains: - destinationUrl: "*.arc.azure.net" destinationType: external - destinationUrl: "*.data.mcr.microsoft.com" destinationType: external - destinationUrl: "*.dp.kubernetesconfiguration.azure.com" destinationType: external - destinationUrl: "*.guestnotificationservice.azure.com" destinationType: external - destinationUrl: "*.his.arc.azure.com" destinationType: external - destinationUrl: "*.login.microsoft.com" destinationType: external - destinationUrl: "*.login.microsoftonline.com" destinationType: external - destinationUrl: "*.obo.arc.azure.com" destinationType: external - destinationUrl: "*.servicebus.windows.net" destinationType: external - destinationUrl: "graph.microsoft.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "management.azure.com" destinationType: external - destinationUrl: "mcr.microsoft.com" destinationType: external - destinationUrl: "sts.windows.net" destinationType: external - destinationUrl: "*.ods.opinsights.azure.com" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "msit-onelake.pbidedicated.windows.net" destinationType: external - destinationUrl: "*.azurecr.io" destinationType: external - destinationUrl: "*.azureedge.net" destinationType: external - destinationUrl: "*.blob.core.windows.net" destinationType: external - destinationUrl: "*.prod.hot.ingestion.msftcloudes.com" destinationType: external - destinationUrl: "*.prod.microsoftmetrics.com" destinationType: external - destinationUrl: "adhs.events.data.microsoft.com" destinationType: external - destinationUrl: "dc.services.visualstudio.com" destinationType: external - destinationUrl: "go.microsoft.com" destinationType: external - destinationUrl: "packages.microsoft.com" destinationType: external - destinationUrl: "www.powershellgallery.com" destinationType: external - destinationUrl: "*.gw.arc.azure.com" destinationType: external - destinationUrl: "*.gcs.prod.monitoring.core.windows.net" destinationType: external - destinationUrl: "*.prod.warm.ingest.monitor.core.windows.net" destinationType: external - destinationUrl: "*.prod.hot.ingest.monitor.core.windows.net" destinationType: external - destinationUrl: "azure.archive.ubuntu.com" destinationType: external - destinationUrl: "crl.microsoft.com" destinationType: external - destinationUrl: "*.table.core.windows.net" destinationType: external - destinationUrl: "*.blob.storage.azure.net" destinationType: external - destinationUrl: "*.docker.com" destinationType: external - destinationUrl: "*.docker.io" destinationType: external - destinationUrl: "*.googleapis.com" destinationType: external - destinationUrl: "github.com" destinationType: external - destinationUrl: "collect.traefik.io" destinationType: external - destinationUrl: "contracts.canonical.com" destinationType: external - destinationUrl: "database.clamav.net" destinationType: external - destinationUrl: "esm.ubuntu.com" destinationType: external - destinationUrl: "livepatch.canonical.com" destinationType: external - destinationUrl: "motd.ubuntu.com" destinationType: external - destinationUrl: "update.traefik.io" destinationType: external sourceIpRange: - addressPrefix: "0.0.0.0" prefixLen: 0
Om du vill skapa layered Network Management-instansen baserat på filen level4.yaml kör du:
kubectl apply -f level4.yaml
Det här steget skapar n poddar, en tjänst och två konfigurationskartor. n baseras på antalet repliker i den anpassade resursen.
Verifiera instansen genom att köra:
kubectl get pods
Utdata bör se ut så här:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s aio-lnm-level4-7598574bf-2lgss 1/1 Running 0 4s
Om du vill visa tjänsten kör du:
kubectl get services
Utdata bör se ut som i följande exempel:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE aio-lnm-level4 LoadBalancer 10.0.141.101 20.81.111.118 80:30960/TCP,443:31214/TCP 29s
Om du vill visa konfigurationskartor kör du:
kubectl get cm
Utdata bör se ut som i följande exempel:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
I det här exemplet är Layered Network Management-instansen redo att ta emot trafik på den externa IP-adressen
20.81.111.118
.
Förbereda nivå 3-klustret
På nivå 3 skapar du ett K3S Kubernetes-kluster på en virtuell Linux-dator. För att förenkla konfigurationen av klustret kan du skapa den virtuella datorn Azure Linux Ubuntu 22.04.3 LTS med internetåtkomst och aktivera ssh från din jumpbox.
Dricks
I ett mer realistiskt scenario som startar installationen i ett isolerat nätverk kan du förbereda datorn med den färdiga avbildningen för din lösning eller metoden För installation av Air-Gap i K3S.
Installera och konfigurera K3S på den virtuella Linux-datorn med hjälp av följande kommandon:
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
Konfigurera nätverksisolering för nivå 3. Använd följande steg för att konfigurera nivå 3-klustret så att endast trafik skickas till Layered Network Management på nivå 4.
- Bläddra till nätverkssäkerhetsgruppen för den virtuella datorns nätverksgränssnitt.
- Lägg till ytterligare en utgående säkerhetsregel för att neka all utgående trafik från den virtuella datorn på nivå 3.
- Lägg till ytterligare en regel för utgående trafik med högsta prioritet för att tillåta utgående trafik till IP-adressen för AKS-kluster på nivå 4 på portarna 443 och 8084.
Etablera klustret i isolerat lager till Arc
Med följande steg kan du Arc-aktivera nivå 3-klustret med hjälp av layered network management-instansen på nivå 4.
Konfigurera jumpboxen så att den har kubectl-åtkomst till klustret.
Generera konfigurationsfilen på den virtuella Linux-datorn.
k3s kubectl config view --raw > config.level3
Konfigurera kubectl-åtkomst till nivå 3 k3s-klustret i jumpboxen genom att
config.level3
kopiera filen till~/.kube
katalogen och byta namn på den tillconfig
. Serverposten i konfigurationsfilen ska anges till IP-adressen eller domännamnet för den virtuella datorn på nivå 3.Se Konfigurera CoreDNS för att använda tilläggsmekanismer som tillhandahålls av CoreDNS (standard-DNS-servern för K3S-kluster) för att lägga till de tillåtna URL:er som ska matchas av CoreDNS.
Kör följande kommandon i jumpboxen för att ansluta klustret till Arc. Det här steget kräver Azure CLI. Installera Az CLI om det behövs.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Mer information om connectedk8s finns i Snabbstart: Ansluta ett befintligt Kubernetes-kluster till Azure Arc .
Du bör se utdata som i följande exempel:
This operation might take a while... The required pre-checks for onboarding have succeeded. Azure resource provisioning has begun. Azure resource provisioning has finished. Starting to install Azure arc agents on the Kubernetes cluster. { "agentPublicKeyCertificate": "MIICCgKCAgEAmU+Pc55pc3sOE2Jo5JbAdk+2OprUziCbgfGRFfbMHO4dT7A7LDaDk7tWwvz5KwUt66eMrabI7M52H8xXvy1j7YwsMwR5TaSeHpgrUe1/4XNYKa6SN2NbpXIXA3w4aHgtKzENm907rYMgTO9gBJEZNJpqsfCdb3E7AHWQabUe9y9T8aub+arBHLQ3furGkv8JnN2LCPbvLnmeLfc1J5 .... ....
Kubernetes-klustret är nu Arc-aktiverat och visas i resursgruppen som du angav i kommandot az connectedk8s connect. Du kan också verifiera etableringen av det här klustret via Azure-portalen. Den här snabbstarten är till för att visa kapaciteten för Layered Network Management för att aktivera Arc för ditt Kubernetes-kluster. Nu kan du prova de inbyggda Arc-funktionerna i det här klustret i det isolerade nätverket.
Nästa steg
- Information om hur du konfigurerar ett kluster i ett isolerat nätverk för Azure IoT-åtgärder som ska distribueras finns i Konfigurera Layered Network Management-tjänsten för att aktivera förhandsversionen av Azure IoT Operations i ett isolerat nätverk
- Mer information om hur du konfigurerar omfattande nätverksmiljöer för Azure IoT Operations-relaterade scenarier finns i Skapa exempelnätverksmiljö