Sdílet prostřednictvím


Konfigurace služby Azure IoT Layered Network Management (Preview) na clusteru úrovně 4

Azure IoT Layered Network Management (Preview) je komponenta pro podporu operací Azure IoT. Pro podporu operací Azure IoT v nižší vrstvě je ale potřeba ho nasadit jednotlivě do horní síťové vrstvy. Na nejvyšší úrovni síťových vrstev (obvykle úroveň 4 síťové architektury ISA-95) má cluster a služba Layered Network Management přímý přístup k internetu. Po dokončení instalace je služba Správa vrstvené sítě (Preview) připravená na příjem síťového provozu z podřízené vrstvy a předá ji do služby Azure Arc.

Požadavky

Splňovat následující minimální požadavky pro nasazení vrstvené síťové správy jednotlivě v systému.

Nastavení clusteru Kubernetes na úrovni 4

Pokud chcete nastavit pouze vrstvenou správu sítě, požadavky jsou jednodušší než nasazení operací Azure IoT. Je volitelné splnit obecné požadavky na operace Azure IoT v rámci přípravy clusteru Kubernetes.

Microsoft ověřuje následující kroky pro nastavení AKS Edge Essentials a clusteru K3S Kubernetes.

Příprava počítače s Ubuntu

  1. Ubuntu 22.04 LTS je doporučená verze hostitelského počítače.

  2. Nainstalujte Helm 3.8.0 nebo novější.

  3. Nainstalujte kubectl.

  4. Nainstalujte rozhraní příkazového řádku Azure. Azure CLI můžete nainstalovat přímo na počítač úrovně 4 nebo na jiný počítač pro vývojáře nebo jumpbox , pokud plánujete vzdálený přístup ke clusteru úrovně 3. Pokud se rozhodnete vzdáleně přistupovat ke clusteru Kubernetes, aby byl hostitel clusteru čistý, spustíte z vývojářského počítače související příkazy kubectl a az pro zbývající kroky v tomto článku.

    • Nainstalujte Azure CLI. Postupujte podle kroků v tématu Instalace Azure CLI v Linuxu.

    • Nainstalujte connectedk8s a další rozšíření.

      az extension add --name connectedk8s
      az extension add --name k8s-extension
      

Vytvoření clusteru K3S

  1. Nainstalujte K3S pomocí následujícího příkazu:

    curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
    

    Další podrobnosti najdete v úvodní příručce k K3s.

    Důležité

    Nezapomeňte použít --disable=traefik parametr k zakázání traefiku. V opačném případě může při pokusu o přidělení veřejné IP adresy pro službu Layered Network Management v dalších krocích dojít k problému.

  2. Zkopírujte soubor yaml konfigurace K3s do .kube/configsouboru .

    mkdir ~/.kube
    cp ~/.kube/config ~/.kube/config.back
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    

Povolení clusteru arc

  1. Přihlaste se pomocí Azure CLI. Abyste se vyhnuli problémům s oprávněními později, je důležité, abyste se interaktivně přihlásili pomocí okna prohlížeče:

    az login
    
  2. Nastavte proměnné prostředí pro kroky nastavení. Nahraďte hodnoty <> platnými hodnotami nebo názvy podle vašeho výběru. Vytvoří se CLUSTER_NAME na RESOURCE_GROUP základě zadaných názvů. Projděte si podporované oblasti operací Azure IoT a vyberte možnost LOCATION.

    # Id of the subscription where your resource group and Arc-enabled cluster will be created
    $SUBSCRIPTION_ID = "<subscription-id>"
    # Azure region where the created resource group will be located
    $LOCATION = "<region>"
    # Name of a new resource group to create which will hold the Arc-enabled cluster and Azure IoT Operations resources
    $RESOURCE_GROUP = "<resource-group-name>"
    # Name of the Arc-enabled cluster to create in your resource group
    $CLUSTER_NAME = "<cluster-name>"
    
  3. Nastavte kontext předplatného Azure pro všechny příkazy:

    az account set -s $SUBSCRIPTION_ID
    
  4. Zaregistrujte požadované poskytovatele prostředků ve vašem předplatném:

    Poznámka:

    Tento krok stačí spustit jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení /register/action operace, která je součástí rolí Přispěvatel předplatného a Vlastník. Další informace najdete v tématu Poskytovatelé a typy prostředků Azure.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    
  5. Pomocí příkazu az group create vytvořte ve svém předplatném Azure skupinu prostředků pro uložení všech prostředků:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  6. Pomocí příkazu az connectedk8s connect povolte cluster Kubernetes a spravujte ho ve skupině prostředků, kterou jste vytvořili v předchozím kroku:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

Nasazení vrstvené služby pro správu sítě do clusteru

Jakmile je cluster Kubernetes povolený službou Arc, můžete do clusteru nasadit službu Správa vrstvené sítě.

Instalace operátoru správy vrstvené sítě

  1. Spusťte následující příkaz: Zástupné symboly <RESOURCE GROUP> a <CLUSTER NAME> informace o onboardingu Arc nahraďte z předchozího kroku.

    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
    
  2. Pomocí příkazu kubectl ověřte, že je spuštěný operátor správy vrstvené sítě.

    kubectl get pods
    
    NAME                                   READY   STATUS    RESTARTS   AGE
    azedge-lnm-operator-598cc495c-5428j   1/1     Running   0          28h
    

Konfigurace služby pro správu vrstvené sítě

Vytvořte vlastní prostředek Správy vrstvené sítě.

  1. Vytvořte soubor lnm-cr.yaml podle zadaného nastavení:

    • Pro ladění nebo experimentování můžete změnit hodnotu parametru loglevel na ladění.
    • Další podrobnosti o koncových bodech najdete v tématu Koncové body operací Azure IoT.
    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
    
  2. Vytvořte vlastní prostředek pro vytvoření instance správy vrstvené sítě.

    kubectl apply -f lnm-cr.yaml
    
  3. Zobrazení služby Kubernetes pro správu vrstvené sítě:

    kubectl get services
    
    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)                                      AGE
    lnm-level-4   LoadBalancer   10.43.91.54   192.168.0.4   80:30530/TCP,443:31117/TCP,10000:31914/TCP   95s
    

Přidání konfigurace iptables pro AKS Edge Essentials

Důležité

Tento krok se dá použít jenom v případě, že je hostitelem vrstvené správy sítě v clusteru AKS Edge Essentials.

Nasazení vrstvené správy sítě vytvoří službu Kubernetes typu LoadBalancer. Abyste měli jistotu, že je služba přístupná mimo cluster Kubernetes, musíte namapovat porty základního hostitele Windows na příslušné porty ve službě Pro správu vrstvené sítě.

netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=192.168.0.4
netsh interface portproxy add v4tov4 listenport=10000 listenaddress=0.0.0.0 connectport=10000 connectaddress=192.168.0.4

Po úspěšném spuštění těchto příkazů se provoz přijatý na portech 443 a 10000 na hostiteli Windows směruje do služby Kubernetes. Při konfiguraci přizpůsobeného DNS pro síťovou vrstvu podřízené úrovně nasměrujete síťový provoz na IP adresu tohoto hostitele Windows a pak na službu Správa vrstvené sítě spuštěné na ní.