Quickstart: Azure IoT Layered Network Management Preview configureren om een cluster in te schakelen in een Azure-omgeving
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
In deze quickstart stelt u de azure IoT Layered Network Management Preview in op een purdue-netwerk op niveau 4 en niveau 3. Netwerkniveau 4 heeft internettoegang en niveau 3 niet. U configureert gelaagd netwerkbeheer om netwerkverkeer van niveau 3 naar Azure te routeren. Ten slotte kunt u het K3S-cluster inschakelen in niveau 3, zelfs niet rechtstreeks verbonden met internet.
- Niveau 4: een AKS-cluster waarop gelaagd netwerkbeheer is geïmplementeerd.
- Niveau 3 is een K3S-cluster dat wordt uitgevoerd op een Linux-VM die gebruikmaakt van het gelaagde netwerkbeheerexemplaren in niveau 4 om verbinding te maken met Azure. Het netwerk op niveau 3 is geconfigureerd voor uitgaande toegang tot het netwerk op niveau 443 en 8084. Alle andere uitgaande toegang is uitgeschakeld.
De gelaagde netwerkbeheerarchitectuur vereist DNS-configuratie op het netwerk op niveau 3, waarbij de toegestane URL's worden teruggezet naar het netwerk op niveau 4. In dit voorbeeld wordt deze installatie uitgevoerd met behulp van een geautomatiseerde installatie die is gebouwd op CoreDNS, het standaard-DNS-resolutiemechanisme dat wordt geleverd met k3s.
Vereisten
Deze vereisten zijn alleen bedoeld voor het onafhankelijk implementeren van gelaagd netwerkbeheer en het cluster op onderliggend niveau inschakelen.
- Een AKS-cluster
- Een virtuele Linux Ubuntu 22.04.3 LTS-machine
- Een jumpbox- of installatiemachine die toegang heeft tot internet en zowel de netwerken op niveau 3 als niveau 4
Gelaagd netwerkbeheervoorbeeld implementeren in het AKS-cluster
Met deze stappen implementeert u gelaagd netwerkbeheer in het AKS-cluster. Het cluster is de bovenste laag in het ISA-95-model. Aan het einde van deze sectie hebt u een exemplaar van gelaagd netwerkbeheer dat klaar is om verkeer van het onderstaande Azure Arc-cluster te accepteren en ondersteuning te bieden voor de implementatie van de Azure IoT Operations Preview-service.
Configureer
kubectl
het AKS-cluster vanuit uw jumpbox door de stappen in Verbinding maken naar het cluster te volgen.Installeer de operator Gelaagd netwerkbeheer met de volgende Azure CLI-opdracht:
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
Voer de volgende opdracht uit om te controleren of de installatie is geslaagd:
kubectl get pods -n azure-iot-operations
Als het goed is, ziet u een uitvoer die eruitziet als in het volgende voorbeeld:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Maak de aangepaste resource Gelaagd netwerkbeheer door een bestand met de naam level4.yaml te maken met de volgende inhoud:
apiVersion: layerednetworkmgmt.iotoperations.azure.com/v1beta1 kind: Lnm metadata: name: level4 namespace: azure-iot-operations 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: "*.ods.opinsights.azure.com" destinationType: external - destinationUrl: "*.oms.opinsights.azure.com" destinationType: external - destinationUrl: "*.monitoring.azure.com" destinationType: external - destinationUrl: "*.handler.control.monitor.azure.com" destinationType: external - destinationUrl: "quay.io" destinationType: external - destinationUrl: "*.quay.io" destinationType: external - destinationUrl: "docker.io" destinationType: external - destinationUrl: "*.docker.io" destinationType: external - destinationUrl: "*.docker.com" destinationType: external - destinationUrl: "gcr.io" destinationType: external - destinationUrl: "*.googleapis.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "msit-onelake.pbidedicated.windows.net" destinationType: external - destinationUrl: "*.vault.azure.net" destinationType: external - destinationUrl: "*.k8s.io" destinationType: external - destinationUrl: "*.pkg.dev" destinationType: external - destinationUrl: "github.com" destinationType: external - destinationUrl: "raw.githubusercontent.com" destinationType: external sourceIpRange: - addressPrefix: "0.0.0.0" prefixLen: 0
Als u het gelaagde netwerkbeheerexemplaren wilt maken op basis van het bestand level4.yaml , voert u het volgende uit:
kubectl apply -f level4.yaml
Met deze stap maakt u n pods, één service en twee configuratietoewijzingen. n is gebaseerd op het aantal replica's in de aangepaste resource.
Voer het volgende uit om het exemplaar te valideren:
kubectl get pods -n azure-iot-operations
De uitvoer moet er als volgt uitzien:
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
Voer de volgende opdracht uit om de service weer te geven:
kubectl get services -n azure-iot-operations
De uitvoer moet eruitzien als in het volgende voorbeeld:
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
Voer de volgende opdracht uit om de configuratietoewijzingen weer te geven:
kubectl get cm -n azure-iot-operations
De uitvoer moet eruitzien als in het volgende voorbeeld:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
In dit voorbeeld is het gelaagde netwerkbeheerexemplaren gereed om verkeer op het externe IP-adres
20.81.111.118
te accepteren.
Het cluster op niveau 3 voorbereiden
In niveau 3 maakt u een K3S Kubernetes-cluster op een virtuele Linux-machine. Om het instellen van het cluster te vereenvoudigen, kunt u de Azure Linux Ubuntu 22.04.3 LTS-VM maken met internettoegang en ssh inschakelen vanuit uw jumpbox.
Tip
In een realistischer scenario dat de installatie in een geïsoleerd netwerk start, kunt u de machine voorbereiden met de vooraf gebouwde installatiekopie voor uw oplossing of de Air-Gap Install-benadering van K3S.
Installeer en configureer K3S op de Linux-VM met behulp van de volgende opdrachten:
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Netwerkisolatie configureren voor niveau 3. Gebruik de volgende stappen om het cluster op niveau 3 te configureren om alleen verkeer naar gelaagd netwerkbeheer in niveau 4 te verzenden.
- Navigeer naar de netwerkbeveiligingsgroep van de netwerkinterface van de VIRTUELE machine.
- Voeg een extra uitgaande beveiligingsregel toe om al het uitgaande verkeer van de virtuele machine op niveau 3 te weigeren.
- Voeg een andere uitgaande regel toe met de hoogste prioriteit om uitgaand verkeer naar het IP-adres van niveau 4 AKS-cluster toe te staan op poort 443 en 8084.
Het cluster inrichten in geïsoleerde laag naar Arc
Met de volgende stappen schakelt u het cluster op niveau 3 in met behulp van het gelaagde netwerkbeheerexemplaren op niveau 4.
Stel de jumpbox in voor kubectl-toegang tot het cluster.
Genereer het configuratiebestand op uw Linux-VM.
k3s kubectl config view --raw > config.level3
Stel in uw jumpbox kubectl-toegang tot het cluster op niveau 3 k3s in door het
config.level3
bestand naar de~/.kube
map te kopiëren en de naam ervan teconfig
wijzigen in . De serververmelding in het configuratiebestand moet worden ingesteld op het IP-adres of de domeinnaam van de VM op niveau 3.Raadpleeg CoreDNS configureren om extensiemechanismen te gebruiken die worden geleverd door CoreDNS (de standaard-DNS-server voor K3S-clusters) om de toegestane URL's toe te voegen die moeten worden omgezet door CoreDNS.
Voer de volgende opdrachten uit op uw jumpbox om het cluster te verbinden met Arc. Voor deze stap is Azure CLI vereist. Installeer zo nodig de Az CLI .
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Zie quickstart: Verbinding maken een bestaand Kubernetes-cluster naar Azure Arc voor meer informatie over connectedk8s.
Als het goed is, ziet u uitvoer zoals in het volgende voorbeeld:
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 .... ....
Uw Kubernetes-cluster is nu ingeschakeld voor Arc en wordt vermeld in de resourcegroep die u hebt opgegeven in de opdracht az connectedk8s connect. U kunt het inrichten van dit cluster ook valideren via Azure Portal. Deze quickstart is bedoeld voor het weergeven van de mogelijkheid van gelaagd netwerkbeheer om Arc in te schakelen voor uw Kubernetes-cluster. U kunt nu de ingebouwde Arc-ervaringen op dit cluster in het geïsoleerde netwerk uitproberen.
Volgende stappen
- Zie De service Gelaagd netwerkbeheer configureren om Azure IoT Operations Preview in te schakelen in een geïsoleerd netwerk voor meer informatie over het instellen van een cluster in een geïsoleerd netwerk
- Zie Voorbeeldnetwerkomgeving maken voor meer informatie over het instellen van uitgebreide netwerkomgevingen voor Azure IoT Operations-gerelateerde scenario's
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor