Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz skonfigurować specjalne izolowane środowisko sieciowe na potrzeby wdrażania operacji usługi Azure IoT. Na przykład poziom 3 lub niższy w architekturze sieci ISA-95. W tym artykule skonfigurujesz klaster Kubernetes i włączysz go za pośrednictwem usługi Azure IoT Layered Network Management (wersja zapoznawcza) na górnym poziomie. Przed rozpoczęciem tego procesu usługa Zarządzania siecią warstwową (wersja zapoznawcza) musi być gotowa do akceptowania żądania połączenia z tego poziomu.
Wykonasz następujące zadania:
- Skonfiguruj system hosta i zainstaluj wszystkie wymagane oprogramowanie w środowisku dostępnym z Internetu.
- Zainstaluj wybraną platformę Kubernetes.
- Przenieś hosta do izolowanego środowiska sieciowego.
- Użyj dostosowanego ustawienia DNS, aby skierować ruch sieciowy do usługi Zarządzania siecią warstwową na poziomie nadrzędnym.
- Włączanie usługi Arc w klastrze.
Ważne
Usługa Azure IoT Layered Network Management (wersja zapoznawcza) zostanie wycofana. Zamiast tego skorzystaj z przykładowych wskazówek dotyczących sieci warstwowych , aby zaimplementować zarządzanie siecią warstwową w operacjach usługi Azure IoT.
Wymagania wstępne
Postępuj zgodnie ze wskazówkami dotyczącymi wymagań sprzętowych i sekcji wymagań wstępnych w temacie Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc.
Konfigurowanie klastra Kubernetes
Możesz użyć usługi AKS Edge Essentials hostowanej w systemie Windows 11 lub klastrze K3S w systemie Ubuntu dla klastra Kubernetes.
Ten krok należy wykonać w środowisku dostępnym z Internetu spoza izolowanej sieci. W przeciwnym razie należy przygotować pakiet instalacyjny offline dla następującego oprogramowania w następnej sekcji.
Przygotowywanie maszyny z systemem Ubuntu
Ubuntu 22.04 LTS jest zalecaną wersją dla maszyny hosta.
Zainstaluj program Helm 3.8.0 lub nowszy.
Zainstaluj narzędzie Kubectl.
Uruchom następujące polecenie, aby zwiększyć limity zegarka/wystąpienia użytkownika.
echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Aby uzyskać lepszą wydajność, zwiększ limit deskryptora plików:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Zainstaluj następujące opcjonalne oprogramowanie, jeśli planujesz wypróbować przewodniki Szybki start dotyczące operacji usługi Azure IoT lub scenariusze związane z MQTT.
Zainstaluj interfejs wiersza polecenia platformy Azure. Interfejs wiersza polecenia platformy Azure można zainstalować bezpośrednio na maszynie poziomu 3 lub na innej maszynie dewelopera lub serwera przesiadkowego , jeśli planujesz zdalny dostęp do klastra poziomu 3. Jeśli zdecydujesz się uzyskać zdalny dostęp do klastra Kubernetes w celu zachowania czystego hosta klastra, uruchomisz polecenia powiązane z narzędziem kubectl i az" z maszyny deweloperów , aby wykonać pozostałe kroki opisane w tym artykule.
Zainstaluj interfejs wiersza polecenia platformy Azure. Wykonaj kroki opisane w temacie Instalowanie interfejsu wiersza polecenia platformy Azure w systemie Linux.
Zainstaluj connectedk8s i inne rozszerzenia.
az extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocation
Zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure przy użyciu polecenia
az extension add --name azure-iot-ops
.
Tworzenie klastra K3S
Zainstaluj usługę K3S przy użyciu następującego polecenia:
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Ważne
Pamiętaj, aby użyć parametru
--disable=traefik
, aby wyłączyć traefik. W przeciwnym razie może wystąpić problem podczas próby przydzielenia publicznego adresu IP dla usługi Zarządzania siecią warstwową w kolejnych krokach.Alternatywnie możesz skonfigurować usługę K3S w trybie offline, wykonując kroki opisane w dokumentacji Instalacji usługi Air-Gap po przeniesieniu urządzenia do izolowanego środowiska sieciowego.
Skopiuj plik yaml konfiguracji K3s do
.kube/config
pliku .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
Przenoszenie urządzenia do poziomu 3 izolowanej sieci
Po przeniesieniu urządzenia do warstwy sieci izolowanej na poziomie 3 wymagane jest posiadanie niestandardowego systemu DNS.
- Jeśli wybierzesz podejście CoreDNS , wykonaj kroki podane w instrukcji, a klaster jest gotowy do nawiązania połączenia z usługą Arc.
- Jeśli używasz serwera DNS, musisz mieć gotowy serwer DNS, a następnie skonfigurować ustawienie DNS systemu Ubuntu. W poniższym przykładzie użyto interfejsu użytkownika systemu Ubuntu:
- Otwórz ustawienia sieci Wi-Fi.
- Wybierz ustawienie bieżącego połączenia.
- Na karcie IPv4 wyłącz ustawienie Automatyczne dla systemu DNS i wprowadź lokalny adres IP serwera DNS.
- Uruchom ponownie usługę CoreDNS.
kubectl rollout restart -n kube-system deployment/coredns
Aprowizuj klaster w usłudze Azure Arc
Przed zainicjowaniem obsługi administracyjnej w usłudze Azure Arc użyj następującego polecenia, aby upewnić się, że serwer DNS działa zgodnie z oczekiwaniami:
dig login.microsoftonline.com
Dane wyjściowe powinny być podobne do poniższego przykładu. W SEKCJI ODPOWIEDŹ sprawdź, czy adres IP to adres IP maszyny na poziomie nadrzędnym, który został skonfigurowany wcześniej.
; <<>> DiG 9.18.12-0ubuntu0.22.04.3-Ubuntu <<>> login.microsoftonline.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28891
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.microsoftonline.com. IN A
;; ANSWER SECTION:
login.microsoftonline.com. 0 IN A 100.104.0.165
Klaster z obsługą usługi Arc
Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uniknąć problemów z uprawnieniami później, ważne jest, aby logowanie odbywało się interaktywnie przy użyciu okna przeglądarki:
az login
Ustaw zmienne środowiskowe dla pozostałej części konfiguracji. Zastąp wartości
<>
prawidłowymi wartościami lub wybranymi nazwami.CLUSTER_NAME
IRESOURCE_GROUP
są tworzone na podstawie nazw, które podajesz:# 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>"
Ustaw kontekst subskrypcji platformy Azure dla wszystkich poleceń:
az account set -s $SUBSCRIPTION_ID
Zarejestruj wymaganych dostawców zasobów w ramach subskrypcji:
Uwaga
Ten krok musi być uruchamiany tylko raz na subskrypcję. Aby zarejestrować dostawców zasobów, musisz mieć uprawnienia do wykonania
/register/action
operacji, która jest uwzględniona w rolach Współautor subskrypcji i Właściciel. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i typy platformy Azure.az provider register -n "Microsoft.ExtendedLocation" az provider register -n "Microsoft.Kubernetes" az provider register -n "Microsoft.KubernetesConfiguration" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry" az provider register -n "Microsoft.SecretSyncController"
Użyj polecenia az group create, aby utworzyć grupę zasobów w ramach subskrypcji platformy Azure w celu przechowywania wszystkich zasobów:
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Użyj polecenia az connectedk8s connect z obsługą usługi Arc klastra Kubernetes i zarządzaj nim w grupie zasobów utworzonej w poprzednim kroku:
az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Napiwek
connectedk8s
Jeśli polecenia kończą się niepowodzeniem, spróbuj użyć poleceń cmdlet w temacie Łączenie klastra AKS Edge Essentials z usługą Arc.
Konfigurowanie sieci klastra
Ważne
Te kroki dotyczą tylko podstawowych elementów usługi AKS Edge.
Po wdrożeniu operacji usługi Azure IoT w klastrze włącz połączenia przychodzące z brokerem MQTT i skonfiguruj przekazywanie portów:
- Włącz regułę zapory dla portu 18883:
New-NetFirewallRule -DisplayName "MQTT broker" -Direction Inbound -Protocol TCP -LocalPort 18883 -Action Allow
- Uruchom następujące polecenie i zanotuj adres IP usługi o nazwie
aio-broker
:kubectl get svc aio-broker -n azure-iot-operations -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
- Włącz przekazywanie portów dla portu 18883. Zastąp
<aio-broker IP address>
ciąg adresem IP zanotowanymi w poprzednim kroku:netsh interface portproxy add v4tov4 listenport=18883 listenaddress=0.0.0.0 connectport=18883 connectaddress=<aio-broker IP address>