Schnellstart: Konfigurieren der Azure IoT Layered Network Management (Vorschau) zum Aktivieren eines Clusters in Azure-Umgebung
In dieser Schnellstartanleitung richten Sie die Azure IoT Layered Network Management (Vorschau) für ein 4- und 3 Purdue-Netzwerk ein. Netzwerkschicht 4 hat Internetzugriff und Schicht 3 nicht. Sie konfigurieren die Layered Network Management (Vorschau) 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 des Layered Network Management (Vorschau) 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.
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.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
Führen Sie Folgendes aus, um zu überprüfen, ob die Installation erfolgreich war:
kubectl get pods
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
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: 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
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.
Zum Überprüfen der Instanz führen Sie Folgendes aus:
kubectl get pods
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
Zum Anzeigen des Diensts führen Sie Folgendes aus:
kubectl get services
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
Zum Anzeigen der Konfigurationszuordnungen führen Sie dies aus:
kubectl get cm
Die Ausgabe sollte wie im folgenden Beispiel aussehen:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
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.
Installieren und konfigurieren Sie K3S auf dem virtuellen Linux-Computer mithilfe der folgenden Befehle:
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
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.
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.
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 inconfig
ändern. Der Servereintrag in der Konfigurationsdatei sollte auf die IP-Adresse oder den Domänennamen der VM der Schicht 3 festgelegt werden.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 hinzuzufügen, finden Sie unter Konfigurieren von CoreDNS.
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.
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 .... ....
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
- Informationen zum Einrichten eines Clusters im isolierten Netzwerk für die Bereitstellung von Azure IoT Einsatz finden Sie unter Konfigurieren des Layered Network Management Service, um Azure IoT Einsatz (Vorschau) in einem isolierten Netzwerk zu aktivieren
- Weitere Informationen zum Einrichten umfassender Netzwerkumgebungen für Azure IoT Operations-bezogene Szenarien finden Sie unter Erstellen einer Beispielnetzwerkumgebung