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.
- Cluster a kategorie GitOps připojené k AKS Edge Essentials - v požadavcích AKS Edge Essentials a matice podpory
- Požadavky na systém Kubernetes s podporou Azure Arc clusteru - K3S
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
Ubuntu 22.04 LTS je doporučená verze hostitelského počítače.
Nainstalujte Helm 3.8.0 nebo novější.
Nainstalujte kubectl.
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
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.Zkopírujte soubor yaml konfigurace K3s do
.kube/config
souboru .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
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
Nastavte proměnné prostředí pro kroky nastavení. Nahraďte hodnoty
<>
platnými hodnotami nebo názvy podle vašeho výběru. Vytvoří seCLUSTER_NAME
naRESOURCE_GROUP
základě zadaných názvů. Projděte si podporované oblasti operací Azure IoT a vyberte možnostLOCATION
.# 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>"
Nastavte kontext předplatného Azure pro všechny příkazy:
az account set -s $SUBSCRIPTION_ID
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"
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
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ě
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
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ě.
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
Vytvořte vlastní prostředek pro vytvoření instance správy vrstvené sítě.
kubectl apply -f lnm-cr.yaml
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í.