Guida introduttiva: Configurare Azure IoT Layered Network Management Preview per Abilitare arc un cluster nell'ambiente Azure
Importante
Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
In questa guida introduttiva si configura l'anteprima di Gestione rete a più livelli di Azure IoT in una rete di livello 4 e di livello 3 Purdue. Il livello di rete 4 ha accesso a Internet e il livello 3 non lo è. Configurare Gestione rete a più livelli per instradare il traffico di rete dal livello 3 ad Azure. Infine, è possibile abilitare Arc il cluster K3S nel livello 3 anche se non è direttamente connesso a Internet.
- Livello 4 di un cluster del servizio Azure Kubernetes con gestione di rete a più livelli distribuito.
- Il livello 3 è un cluster K3S in esecuzione in una macchina virtuale Linux che usa l'istanza di gestione di rete a più livelli nel livello 4 per ottenere la connessione ad Azure. La rete di livello 3 è configurata per avere accesso in uscita alla rete di livello 4 sulle porte 443 e 8084. Tutti gli altri accessi in uscita sono disabilitati.
L'architettura di gestione della rete a più livelli richiede la configurazione DNS nella rete di livello 3, in cui gli URL consentiti vengono ripuntati alla rete di livello 4. In questo esempio, questa configurazione viene eseguita usando una configurazione automatizzata basata su CoreDNS, il meccanismo di risoluzione DNS predefinito fornito con k3s.
Prerequisiti
Questi prerequisiti sono solo per la distribuzione della gestione della rete a più livelli in modo indipendente e l'abilitazione di Arc del cluster a livello figlio.
- Un cluster del servizio Azure Kubernetes
- Una macchina virtuale LTS linux di Azure Linux 22.04.3
- Un jumpbox o un computer di configurazione che ha accesso a Internet ed entrambe le reti di livello 3 e di livello 4
Distribuire l'anteprima di Gestione rete a più livelli nel cluster del servizio Azure Kubernetes
Questi passaggi distribuiscono Gestione rete a più livelli nel cluster del servizio Azure Kubernetes. Il cluster è il livello superiore nel modello ISA-95. Alla fine di questa sezione è disponibile un'istanza di Gestione rete a più livelli pronta per accettare il traffico dal cluster abilitato per Azure Arc di seguito e supportare la distribuzione del servizio Azure IoT Operations Preview.
Configurare per gestire il cluster del servizio Azure Kubernetes
kubectl
dal jumpbox seguendo i passaggi descritti in Connessione al cluster.Installare l'operatore Gestione rete a più livelli con il comando dell'interfaccia della riga di comando di Azure seguente:
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
Per verificare che l'installazione sia riuscita, eseguire:
kubectl get pods -n azure-iot-operations
Verrà visualizzato un output simile all'esempio seguente:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Creare la risorsa personalizzata Gestione rete a più livelli creando un file denominato level4.yaml con il contenuto seguente:
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
Per creare l'istanza di Gestione rete a più livelli in base al file level4.yaml , eseguire:
kubectl apply -f level4.yaml
Questo passaggio crea n pod, un servizio e due mappe di configurazione. n si basa sul numero di repliche nella risorsa personalizzata.
Per convalidare l'istanza, eseguire:
kubectl get pods -n azure-iot-operations
L'output sarà simile al seguente:
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
Per visualizzare il servizio, eseguire:
kubectl get services -n azure-iot-operations
L'output dovrebbe essere simile all'esempio seguente:
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
Per visualizzare le mappe di configurazione, eseguire:
kubectl get cm -n azure-iot-operations
L'output dovrebbe essere simile all'esempio seguente:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
In questo esempio, l'istanza di Gestione rete a più livelli è pronta per accettare il traffico sull'indirizzo IP
20.81.111.118
esterno.
Preparare il cluster di livello 3
Nel livello 3 si crea un cluster Kubernetes K3S in una macchina virtuale Linux. Per semplificare la configurazione del cluster, è possibile creare la macchina virtuale Linux Ubuntu 22.04.3 LTS di Azure con accesso a Internet e abilitare ssh dal jumpbox.
Suggerimento
In uno scenario più realistico che avvia la configurazione in rete isolata, è possibile preparare la macchina con l'immagine predefinita per la soluzione o l'approccio air-gap install di K3S.
Nella macchina virtuale Linux installare e configurare K3S usando i comandi seguenti:
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Configurare l'isolamento di rete per il livello 3. Usare la procedura seguente per configurare il cluster di livello 3 per inviare il traffico solo a Gestione rete a più livelli nel livello 4.
- Passare al gruppo di sicurezza di rete dell'interfaccia di rete della macchina virtuale.
- Aggiungere una regola di sicurezza in uscita aggiuntiva per negare tutto il traffico in uscita dalla macchina virtuale di livello 3.
- Aggiungere un'altra regola in uscita con la priorità più alta per consentire l'accesso in uscita al cluster del servizio Azure Kubernetes di livello 4 sulle porte 443 e 8084.
Effettuare il provisioning del cluster in un livello isolato in Arc
Con i passaggi seguenti, arc-enable the level 3 cluster using the Layered Network Management instance at level 4 (Abilitare arc-level-the level 3 cluster using the Layered Network Management instance at level 4).
Configurare il jumpbox per avere l'accesso kubectl al cluster.
Generare il file di configurazione nella macchina virtuale Linux.
k3s kubectl config view --raw > config.level3
Nel jumpbox configurare l'accesso kubectl al cluster di livello 3 k3s copiando il
config.level3
file nella~/.kube
directory e rinominarlo inconfig
. La voce del server nel file di configurazione deve essere impostata sull'indirizzo IP o sul nome di dominio della macchina virtuale di livello 3.Vedere Configurare CoreDNS per l'uso dei meccanismi di estensione forniti da CoreDNS (server DNS predefinito per i cluster K3S) per aggiungere gli URL consentiti da risolvere da CoreDNS.
Eseguire i comandi seguenti nel jumpbox per connettere il cluster ad Arc. Questo passaggio richiede l'interfaccia della riga di comando di Azure. Installare l'interfaccia della riga di comando di Az, se necessario.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Per altre informazioni su connectedk8s, vedere Avvio rapido: Connessione un cluster Kubernetes esistente in Azure Arc.
Verrà visualizzato un output simile all'esempio seguente:
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 .... ....
Il cluster Kubernetes è ora abilitato per Arc ed è elencato nel gruppo di risorse fornito nel comando az connectedk8s connect. È anche possibile convalidare il provisioning di questo cluster tramite il portale di Azure. Questa guida introduttiva illustra la funzionalità di gestione della rete a più livelli per abilitare Arc per il cluster Kubernetes. È ora possibile provare le esperienze Arc predefinite in questo cluster all'interno della rete isolata.
Passaggi successivi
- Per informazioni su come configurare un cluster in una rete isolata per le operazioni IoT di Azure da distribuire, vedere Configurare il servizio Gestione rete a più livelli per abilitare l'anteprima delle operazioni IoT di Azure in una rete isolata
- Per altre informazioni sulla configurazione di ambienti di rete completi per gli scenari correlati alle operazioni IoT di Azure, vedere Creare un ambiente di rete di esempio
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per