Aracılığıyla paylaş


4. düzey kümede Azure IoT Katmanlı Ağ Yönetimi Önizlemesini yapılandırma

Önemli

Azure Arc tarafından etkinleştirilen Azure IoT İşlemleri Önizlemesi şu anda ÖNİzLEME aşamasındadır. Bu önizleme yazılımını üretim ortamlarında kullanmamalısınız.

Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azure IoT Katmanlı Ağ Yönetimi Önizlemesi, Azure IoT İşlemleri Önizleme bileşenlerinden biridir. Ancak, alt katmanda Azure IoT İşlemlerini desteklemek için üst ağ katmanına tek tek dağıtılabilir. Ağ katmanlarınızın en üst düzeyinde (genellikle ISA-95 ağ mimarisinin 4. düzeyi), küme ve Katmanlı Ağ Yönetimi hizmeti doğrudan İnternet erişimine sahiptir. Kurulum tamamlandıktan sonra Katmanlı Ağ Yönetimi hizmeti alt katmandan ağ trafiğini almaya hazır olur ve bunu Azure Arc'a iletir.

Önkoşullar

Katmanlı Ağ Yönetimi'ni sisteme tek tek dağıtmak için aşağıdaki minimum gereksinimleri karşılayın.

Düzey 4'te Kubernetes kümesini ayarlama

Yalnızca Katmanlı Ağ Yönetimi'ni ayarlamak için önkoşullar Azure IoT İşlemleri dağıtımından daha basittir. Kubernetes kümenizi hazırlama bölümünde Azure IoT İşlemleri için genel gereksinimleri karşılamak isteğe bağlıdır.

AKS Edge Essentials ve K3S Kubernetes kümesini ayarlamak için aşağıdaki adımlar Microsoft tarafından doğrulanmıştır.

Ubuntu makinesi hazırlama

  1. Ubuntu 22.04 LTS, konak makine için önerilen sürümdür.

  2. Helm 3.8.0 veya üzerini yükleyin.

  3. Kubectl'yi yükleyin.

  4. Azure CLI yükleyin. 3. düzey kümeye uzaktan erişmeyi planlıyorsanız Azure CLI'yi doğrudan düzey 4 makinesine veya başka bir geliştirici veya sıçrama kutusu makinesine yükleyebilirsiniz. Küme ana bilgisayarını temiz tutmak için Kubernetes kümesine uzaktan erişmeyi seçerseniz, bu makaledeki diğer adımlar için geliştirici makinesinden kubectl ve az" ile ilgili komutları çalıştırırsınız.

K3S kümesini oluşturma

  1. Aşağıdaki komutla K3S'yi yükleyin:

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

    Önemli

    treafik'i devre dışı bırakmak için parametresini kullandığınızdan --disable=traefik emin olun. Aksi takdirde, sonraki adımlarda Katmanlı Ağ Yönetimi hizmeti için genel IP ayırmaya çalıştığınızda bir sorun yaşayabilirsiniz.

  2. K3s yapılandırma yaml dosyasını konumuna .kube/configkopyalayın.

    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
    

Yay, kümeyi etkinleştirme

  1. Azure CLI ile oturum açın. İzin sorunlarını daha sonra önlemek için, bir tarayıcı penceresi kullanarak etkileşimli olarak oturum açmanız önemlidir:

    az login
    
  2. Kurulum adımları için ortam değişkenlerini ayarlayın. içindeki <> değerleri, seçtiğiniz geçerli değerlerle veya adlarla değiştirin. CLUSTER_NAME veRESOURCE_GROUP, sağladığınız adlara göre oluşturulur:

    # 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
    # Currently supported regions: : "westus3" or "eastus2"
    $LOCATION = "WestUS3"
    # 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. Tüm komutlar için Azure aboneliği bağlamını ayarlayın:

    az account set -s $SUBSCRIPTION_ID
    
  4. Gerekli kaynak sağlayıcılarını aboneliğinize kaydedin:

    Not

    Bu, abonelik başına tek seferlik bir yapılandırmadır.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  5. Azure aboneliğinizde tüm kaynakları depolamak üzere bir kaynak grubu oluşturmak için az group create komutunu kullanın:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  6. Kubernetes kümenizi arc-enable'a az connectedk8s connect komutunu kullanın ve önceki adımda oluşturduğunuz kaynak grubunda yönetin:

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

    İpucu

    Komutlar connectedk8s başarısız olursa AKS Edge Essentials kümenizi Arc'a bağlama bölümünde bulunan cmdlet'leri kullanmayı deneyin.

Katmanlı Ağ Yönetimi Önizleme Hizmeti'ni kümeye dağıtma

Kubernetes kümeniz Arc özellikli olduğunda, Katmanlı Ağ Yönetimi hizmetini kümeye dağıtabilirsiniz.

Katmanlı Ağ Yönetimi Önizleme işlecini yükleme

  1. Aşağıdaki komutu çalıştırın. Yer tutucuları <RESOURCE GROUP> ve <CLUSTER NAME> önceki bir adımdaki Arc ekleme bilgilerinizi değiştirin.

    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. Katmanlı Ağ Yönetimi işlecinin çalıştığını doğrulamak için kubectl komutunu kullanın.

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

Katmanlı Ağ Yönetimi Önizleme Hizmetini Yapılandırma

Katmanlı Ağ Yönetimi özel kaynağını oluşturun.

  1. Belirtilen şekilde bir lnm-cr.yaml dosya oluşturun:

    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
    

    Hata ayıklama veya deneme için loglevel parametresinin değerini hata ayıklamak üzere değiştirebilirsiniz.

  2. Katmanlı Ağ Yönetimi örneği oluşturmak için Özel Kaynağı oluşturun.

    kubectl apply -f lnm-cr.yaml
    
  3. Katmanlı Ağ Yönetimi Kubernetes hizmetini görüntüleyin:

    kubectl get services -n azure-iot-operations
    
    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
    

Iptables yapılandırması ekleme

Önemli

Bu adım yalnızca AKS Edge Temel Bileşenleri içindir.

Katmanlı Ağ Yönetimi dağıtımı, LoadBalancer türünde bir Kubernetes hizmeti oluşturur. Hizmete Kubernetes kümesi dışından erişilebilir olduğundan emin olmak için, temel alınan Windows ana bilgisayarının bağlantı noktalarını Katmanlı Ağ Yönetimi hizmetindeki uygun bağlantı noktalarıyla eşlemeniz gerekir.

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

Bu komutlar başarıyla çalıştırıldıktan sonra, Windows ana bilgisayarında 443 ve 10000 bağlantı noktalarına alınan trafik Kubernetes hizmetine yönlendirilir. Alt düzey ağ katmanı için özelleştirilmiş DNS yapılandırırken, ağ trafiğini bu Windows konağının IP'sine ve ardından üzerinde çalışan Katmanlı Ağ Yönetimi hizmetine yönlendirirsiniz.