Szybki start: konfigurowanie usługi Azure IoT Layered Network Management (wersja zapoznawcza) w celu włączenia klastra usługi Arc w środowisku platformy Azure
W tym przewodniku Szybki start skonfigurujesz usługę Azure IoT Layered Network Management (wersja zapoznawcza) na poziomie 4 i poziom 3 sieci purdue. Poziom 4 sieci ma dostęp do Internetu, a poziom 3 nie. Należy skonfigurować zarządzanie siecią warstwową (wersja zapoznawcza) do kierowania ruchu sieciowego z poziomu 3 do platformy Azure. Na koniec możesz włączyć klaster K3S w usłudze Arc na poziomie 3, nawet jeśli nie jest bezpośrednio połączony z Internetem.
- Poziom 4 klastra usługi AKS z wdrożonym zarządzaniem siecią warstwową.
- Poziom 3 to klaster K3S uruchomiony na maszynie wirtualnej z systemem Linux, który używa wystąpienia zarządzania siecią warstwową na poziomie 4 w celu nawiązania połączenia z platformą Azure. Sieć poziomu 3 jest skonfigurowana tak, aby mieć dostęp wychodzący do sieci poziomu 4 na portach 443 i 8084. Cały pozostały dostęp wychodzący jest wyłączony.
Architektura zarządzania siecią warstwową wymaga konfiguracji DNS w sieci poziomu 3, gdzie dozwolone adresy URL są ponownie określone w sieci poziomu 4. W tym przykładzie ta konfiguracja jest realizowana przy użyciu automatycznej konfiguracji, która jest oparta na coreDNS, domyślnym mechanizmie rozpoznawania nazw DNS dostarczanym z k3s.
Wymagania wstępne
Te wymagania wstępne dotyczą tylko niezależnego wdrażania zarządzania siecią warstwową i włączenia usługi Arc klastra na poziomie podrzędnym.
- Klaster usługi AKS
- Maszyna wirtualna z systemem Ubuntu 22.04.3 LTS platformy Azure
- Serwer przesiadkowy lub komputer instalacyjny, który ma dostęp do Internetu i zarówno sieci poziomu 3, jak i poziomu 4
Wdrażanie zarządzania siecią warstwową (wersja zapoznawcza) w klastrze usługi AKS
Te kroki umożliwiają wdrożenie zarządzania siecią warstwową w klastrze usługi AKS. Klaster jest górną warstwą w modelu ISA-95. Na końcu tej sekcji masz wystąpienie warstwowego zarządzania siecią, które jest gotowe do akceptowania ruchu z klastra z obsługą usługi Azure Arc poniżej i obsługuje wdrażanie usługi Azure IoT Operations.
Skonfiguruj zarządzanie
kubectl
klastrem usługi AKS z poziomu serwera przesiadkowego, wykonując kroki opisane w temacie Nawiązywanie połączenia z klastrem.Zainstaluj operator Zarządzanie siecią warstwową za pomocą następującego polecenia interfejsu wiersza polecenia platformy Azure:
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
Aby sprawdzić, czy instalacja zakończyła się pomyślnie, uruchom polecenie:
kubectl get pods
Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Utwórz zasób niestandardowy Zarządzanie siecią warstwową, tworząc plik o nazwie level4.yaml o następującej zawartości:
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
Aby utworzyć wystąpienie zarządzania siecią warstwową na podstawie pliku level4.yaml , uruchom polecenie:
kubectl apply -f level4.yaml
Ten krok tworzy n zasobników, jedną usługę i dwie mapy konfiguracji. n jest oparta na liczbie replik w zasobie niestandardowym.
Aby zweryfikować wystąpienie, uruchom polecenie:
kubectl get pods
Dane wyjściowe powinny wyglądać następująco:
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
Aby wyświetlić usługę, uruchom polecenie:
kubectl get services
Dane wyjściowe powinny wyglądać podobnie do następującego przykładu:
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
Aby wyświetlić mapy konfiguracji, uruchom polecenie:
kubectl get cm
Dane wyjściowe powinny wyglądać podobnie do następującego przykładu:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
W tym przykładzie wystąpienie zarządzania siecią warstwową jest gotowe do akceptowania ruchu na zewnętrznym adresie IP
20.81.111.118
.
Przygotowywanie klastra poziomu 3
Na poziomie 3 tworzysz klaster Kubernetes K3S na maszynie wirtualnej z systemem Linux. Aby uprościć konfigurowanie klastra, możesz utworzyć maszynę wirtualną z systemem Linux Ubuntu 22.04.3 LTS z dostępem do Internetu i włączyć protokół SSH z serwera przesiadkowego.
Napiwek
W bardziej realistycznym scenariuszu, który uruchamia konfigurację w izolowanej sieci, możesz przygotować maszynę ze wstępnie utworzonym obrazem dla rozwiązania lub podejściem do instalacji programu Air-Gap w usłudze K3S.
Na maszynie wirtualnej z systemem Linux zainstaluj i skonfiguruj usługę K3S przy użyciu następujących poleceń:
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
Skonfiguruj izolację sieci dla poziomu 3. Wykonaj poniższe kroki, aby skonfigurować klaster poziomu 3 tak, aby wysyłał ruch tylko do warstwowego zarządzania siecią na poziomie 4.
- Przejdź do sieciowej grupy zabezpieczeń interfejsu sieciowego maszyny wirtualnej.
- Dodaj dodatkową regułę zabezpieczeń dla ruchu wychodzącego, aby odmówić całego ruchu wychodzącego z maszyny wirtualnej poziomu 3.
- Dodaj kolejną regułę ruchu wychodzącego z najwyższym priorytetem, aby zezwolić na ruch wychodzący do adresu IP klastra usługi AKS na portach 443 i 8084.
Aprowizuj klaster w warstwie izolowanej do usługi Arc
W poniższych krokach włączysz klaster poziomu 3 za pomocą wystąpienia zarządzania siecią warstwową na poziomie 4.
Skonfiguruj serwer przesiadkowy, aby mieć dostęp kubectl do klastra.
Wygeneruj plik konfiguracji na maszynie wirtualnej z systemem Linux.
k3s kubectl config view --raw > config.level3
Na serwerze przesiadkowym skonfiguruj dostęp kubectl do klastra poziomu 3 k3s, kopiując
config.level3
plik do~/.kube
katalogu i zmieniając jego nazwę naconfig
. Wpis serwera w pliku konfiguracji powinien być ustawiony na adres IP lub nazwę domeny maszyny wirtualnej poziomu 3.Zapoznaj się z tematem Configure CoreDNS to use extension mechanisms provided by CoreDNS (domyślny serwer DNS dla klastrów K3S), aby dodać dozwolone adresy URL.
Uruchom następujące polecenia na serwerze przesiadkowym, aby połączyć klaster z usługą Arc. Ten krok wymaga interfejsu wiersza polecenia platformy Azure. W razie potrzeby zainstaluj interfejs wiersza polecenia Az.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Aby uzyskać więcej informacji o connectedk8s, zobacz Szybki start: łączenie istniejącego klastra Kubernetes z usługą Azure Arc .
Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
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 .... ....
Klaster Kubernetes jest teraz włączony w usłudze Arc i znajduje się w grupie zasobów podanej w poleceniu az connectedk8s connect. Możesz również zweryfikować aprowizację tego klastra za pośrednictwem witryny Azure Portal. Ten przewodnik Szybki start umożliwia przedstawienie możliwości zarządzania siecią warstwową w celu włączenia usługi Arc dla klastra Kubernetes. Teraz możesz wypróbować wbudowane środowiska arc w tym klastrze w sieci izolowanej.
Następne kroki
- Aby dowiedzieć się, jak skonfigurować klaster w izolowanej sieci dla operacji usługi Azure IoT do wdrożenia, zobacz Konfigurowanie usługi Zarządzania siecią warstwową w celu włączenia operacji usługi Azure IoT w izolowanej sieci
- Aby uzyskać więcej szczegółowych informacji na temat konfigurowania kompleksowych środowisk sieciowych dla scenariuszy związanych z operacjami usługi Azure IoT, zobacz Tworzenie przykładowego środowiska sieciowego