Snabbstart: Konfigurera Azure IoT Layered Network Management (förhandsversion) för att Arc-aktivera ett kluster i Azure-miljön
I den här snabbstarten konfigurerar du Azure IoT Layered Network Management (förhandsversion) 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örhandsversion) 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 Layered Network Management (förhandsversion) 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-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: "management.azure.com" destinationType: external - destinationUrl: "*.dp.kubernetesconfiguration.azure.com" destinationType: external - destinationUrl: "login.microsoftonline.com" destinationType: external - destinationUrl: "*.login.microsoft.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "mcr.microsoft.com" destinationType: external - destinationUrl: "*.data.mcr.microsoft.com" destinationType: external - destinationUrl: "gbl.his.arc.azure.com" destinationType: external - destinationUrl: "*.his.arc.azure.com" destinationType: external - destinationUrl: "k8connecthelm.azureedge.net" destinationType: external - destinationUrl: "guestnotificationservice.azure.com" destinationType: external - destinationUrl: "*.guestnotificationservice.azure.com" destinationType: external - destinationUrl: "sts.windows.net" destinationType: external - destinationUrl: "k8sconnectcsp.azureedge.net" destinationType: external - destinationUrl: "*.servicebus.windows.net" destinationType: external - destinationUrl: "graph.microsoft.com" destinationType: external - destinationUrl: "*.arc.azure.net" destinationType: external - destinationUrl: "*.obo.arc.azure.com" destinationType: external - destinationUrl: "linuxgeneva-microsoft.azurecr.io" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "*.azurecr.io" destinationType: external - destinationUrl: "*.blob.core.windows.net" destinationType: external - destinationUrl: "*.vault.azure.net" destinationType: external - destinationUrl: "*.blob.storage.azure.net" 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 en extra 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 tillåtna URL:er.
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 Portal. 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 Azure IoT-åtgärder 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ö