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.
U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar komt. U kunt geen preview-installatie upgraden.
Zie de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in de bètaversie, in preview of anderszins nog niet zijn uitgebracht in algemene beschikbaarheid.
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
dit om uw AKS-cluster te beheren vanuit uw jumpbox door de stappen in Verbinding maken met 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
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: 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
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
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
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
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 - --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.
- Blader 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: Een bestaand Kubernetes-cluster verbinden met 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