Teilen über


Schnellstart: Konfigurieren der Azure IoT Layered Network Management Preview zum Aktivieren eines Clusters in azure-Umgebung

Wichtig

Die von Azure Arc unterstützte Vorschauversion von „Azure IoT Einsatz“ befindet sich derzeit in der Vorschauphase. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Installation von Azure IoT Einsatz bereitstellen, wenn ein allgemein verfügbares Release verfügbar wird. Sie werden kein Upgrade für eine Preview-Installation durchführen können.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

In dieser Schnellstartanleitung richten Sie die Azure IoT Layered Network Management Preview für ein 4- und 3 Purdue-Netzwerk ein. Netzwerkschicht 4 hat Internetzugriff und Schicht 3 nicht. Sie konfigurieren die Layered Network Management so, dass der Netzwerkdatenverkehr von Ebene 3 zu Azure weitergeleitet wird. Schließlich können Sie den K3S-Cluster in Ebene 3 aktivieren, auch wenn er nicht direkt mit dem Internet verbunden ist.

  • Schicht 4 eines AKS-Clusters mit bereitgestelltem Layered Network Management.
  • Schicht 3 ist ein K3S-Cluster, der auf einer Linux-VM ausgeführt wird, die die Layered Network Management-Instanz in Schicht 4 verwendet, um eine Verbindung mit Azure herzustellen. Das Netzwerk der Schicht 3 ist für ausgehenden Zugriff auf das Netzwerk der Schicht 4 an den Ports 443 und 8084 konfiguriert. Jeder weitere ausgehende Zugriff ist deaktiviert.

Die Architektur von Layered Network Management erfordert DNS-Konfiguration im Netzwerk der Schicht 3, in dem die durch Zulassungslisten zugelassenen URLs auf das Netzwerk der Schicht 4 verwiesen werden. In diesem Beispiel wird dieses Setup mithilfe eines automatisierten Setups durchgeführt, das auf CoreDNS basiert, dem standardmäßigen DNS-Auflösungsmechanismus, der in K3S enthalten ist.

Voraussetzungen

Diese Voraussetzungen gelten nur für die unabhängige Bereitstellung der Layered Network Management und arc-enable the child level cluster.

  • AKS-Cluster
  • Ein virtueller Azure Linux Ubuntu 22.04.3 virtueller Computer
  • Ein Jumpbox- oder Setupcomputer, der Zugriff auf das Internet hat, und sowohl die Netzwerke der Ebene 3 als auch der Ebene 4

Bereitstellen der Vorschau der Mehrschichtnetzwerkverwaltung im AKS-Cluster

Mithilfe dieser Schritte wird Layered Network Management auf dem AKS-Cluster bereitgestellt. Der Cluster ist die oberste Ebene im ISA-95-Modell. Am Ende dieses Abschnitts verfügen Sie über eine Instanz des Layered Network Management, die bereit ist, Datenverkehr vom Azure Arc-fähigen Cluster unten zu akzeptieren und die Bereitstellung des Azure IoT Operations-Diensts zu unterstützen.

  1. Konfigurieren Sie kubectl, um Ihren AKS-Cluster von Ihrer Jumpbox aus zu verwalten, indem Sie die Schritte unter Herstellen einer Verbindung mit dem Cluster ausführen.

  2. Installieren Sie den Layered Network Management-Operator mit dem folgenden Azure CLI-Befehl:

    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
    
  3. Führen Sie Folgendes aus, um zu überprüfen, ob die Installation erfolgreich war:

    kubectl get pods -n azure-iot-operations
    

    Sie sollten eine Ausgabe ähnlich wie im folgenden Beispiel sehen:

    NAME                                READY   STATUS        RESTARTS   AGE
    aio-lnm-operator-7db49dc9fd-kjf5x   1/1     Running       0          78s
    
  4. Erstellen Sie die benutzerdefinierte Layered Network Management-Ressource, indem Sie eine Datei mit dem Namen level4.yaml mit dem folgenden Inhalt erstellen:

    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
    
  5. Führen Sie Folgendes aus, um die Layered Network Management-Instanz basierend auf der Datei level4.yaml zu erstellen:

    kubectl apply -f level4.yaml
    

    Dieser Schritt erstellt n-Pods, einen Dienst und zwei Konfigurationszuordnungen. n basiert auf der Anzahl der Replikate in der benutzerdefinierten Ressource.

  6. Zum Überprüfen der Instanz führen Sie Folgendes aus:

    kubectl get pods -n azure-iot-operations
    

    Die Ausgabe sollte wie folgt aussehen:

    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
    
  7. Zum Anzeigen des Diensts führen Sie Folgendes aus:

    kubectl get services -n azure-iot-operations
    

    Die Ausgabe sollte wie im folgenden Beispiel aussehen:

    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
    
  8. Zum Anzeigen der Konfigurationszuordnungen führen Sie dies aus:

    kubectl get cm -n azure-iot-operations
    

    Die Ausgabe sollte wie im folgenden Beispiel aussehen:

    NAME                           DATA   AGE
    aio-lnm-level4-config          1      50s
    aio-lnm-level4-client-config   1      50s
    
  9. In diesem Beispiel ist die Layered Network Management-Instanz bereit, Datenverkehr über die externe IP 20.81.111.118 zu akzeptieren.

Vorbereiten des Clusters der Ebene 3

In Ebene 3 erstellen Sie einen K3S Kubernetes-Cluster auf einem virtuellen Linux-Computer. Um das Einrichten des Clusters zu vereinfachen, können Sie die Azure Linux Ubuntu 22.04.3 LTS-VM mit Internetzugang erstellen und ssh über Ihren Jumpbox aktivieren.

Tipp

In einem realistischeren Szenario, das das Setup in isoliertem Netzwerk startet, können Sie den Computer mit dem vordefinierten Image für Ihre Lösung oder den Air-Gap Install-Ansatz von K3S vorbereiten.

  1. Installieren und konfigurieren Sie K3S auf dem virtuellen Linux-Computer mithilfe der folgenden Befehle:

    curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
    
  2. Konfigurieren der Netzwerkisolation für Ebene 3. Führen Sie die folgenden Schritte aus, um den Cluster der Ebene 3 so zu konfigurieren, dass nur Datenverkehr an die Layered Network Management in Ebene 4 gesendet wird.

    • Browsen Sie zur Netzwerksicherheitsgruppe der Netzwerkschnittstelle des virtuellen Computers.
    • Fügen Sie eine zusätzliche ausgehende Sicherheitsregel hinzu, um den gesamten ausgehenden Datenverkehr vom virtuellen Computer der Ebene 3 zu verweigern.
    • Fügen Sie eine weitere ausgehende Regel mit der höchsten Priorität hinzu, um ausgehenden Zugriff auf den IP-Cluster der Ebene 4 AKS an den Ports 443 und 8084 zuzulassen.

    Screenshot der ausgehenden Regeln der Netzwerksicherheitsgruppe.

Bereitstellen des Clusters in isolierter Ebene in Arc

Mit den folgenden Schritten aktivieren Sie den Cluster der Ebene 3 mithilfe der Layered Network Management-Instanz auf Ebene 4.

  1. Richten Sie für die Jumpbox kubectl-Zugriff auf den Cluster ein.

    Generieren Sie die Konfigurationsdatei auf Ihrem virtuellen Linux-Computer.

    k3s kubectl config view --raw > config.level3
    

    Richten Sie auf Ihrer Jumpbox kubectl-Zugriff auf den K3S-Cluster auf Schicht 3 ein, indem Sie die Datei config.level3 in das Verzeichnis ~/.kube kopieren und ihren Namen in config ändern. Der Servereintrag in der Konfigurationsdatei sollte auf die IP-Adresse oder den Domänennamen der VM der Schicht 3 festgelegt werden.

  2. Informationen zum Verwenden von Erweiterungsmechanismen, die von CoreDNS (dem DNS-Standardserver für K3S-Cluster) zur Verfügung gestellt werden, um die per Zulassungsliste zugelassen URLs für die Auflösung durch CoreDNS hinzuzufügen, finden Sie unter Konfigurieren von CoreDNS.

  3. Führen Sie die folgenden Befehle auf Ihrer Jumpbox aus, um den Cluster mit Arc zu verbinden. Für diesen Schritt ist Azure CLI erforderlich. Installieren Sie bei Bedarf die 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>
    

    Weitere Informationen zu connectedk8s finden Sie unter Schnellstart: Verbinden eines vorhandenen Kubernetes-Clusters mit Azure Arc.

  4. Ihnen sollte eine Ausgabe wie im folgenden Beispiel angezeigt werden:

    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
      ....
      ....
    
  5. Ihr Kubernetes-Cluster ist jetzt Arc-fähig und wird in der Ressourcengruppe aufgeführt, die Sie im Befehl „az connectedk8s connect“ angegeben haben. Sie können die Bereitstellung dieses Clusters außerdem über das Azure-Portal überprüfen. In dieser Schnellstartanleitung wird die Funktion von Layered Network Management vorgestellt, Arc für Ihren Kubernetes-Cluster zu aktivieren. Sie können jetzt die integrierten Arc-Umgebungen in diesem Cluster innerhalb des isolierten Netzwerks ausprobieren.

Nächste Schritte