Udostępnij za pośrednictwem


Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc

Ważne

Usługa Azure IoT Operations Preview — włączona przez usługę Azure Arc jest obecnie dostępna w wersji zapoznawczej. Nie należy używać tego oprogramowania w wersji zapoznawczej w środowiskach produkcyjnych.

Po udostępnieniu ogólnie dostępnej wersji należy wdrożyć nową instalację operacji usługi Azure IoT. Nie będzie można uaktualnić instalacji w wersji zapoznawczej.

Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Klaster Kubernetes z obsługą usługi Azure Arc jest wymaganiem wstępnym do wdrożenia usługi Azure IoT Operations Preview. W tym artykule opisano sposób przygotowania klastra przed wdrożeniem operacji usługi Azure IoT. Ten artykuł zawiera wskazówki dotyczące systemów Ubuntu i Windows.

Kroki opisane w tym artykule przygotowują klaster do wdrożenia ustawień bezpiecznych, co jest dłuższym, ale gotowym do produkcji procesem. Jeśli chcesz szybko wdrożyć operacje usługi Azure IoT i uruchomić przykładowe obciążenie przy użyciu tylko ustawień testowych, zobacz Przewodnik Szybki start: uruchamianie wersji zapoznawczej operacji usługi Azure IoT w usłudze GitHub Codespaces z użyciem języka K3s . Aby uzyskać więcej informacji na temat ustawień testów i bezpiecznych ustawień, zobacz Szczegóły > wdrożenia Wybierz swoje funkcje.

Wymagania wstępne

Firma Microsoft obsługuje podstawy usługi Azure Kubernetes Service (AKS) Edge na potrzeby wdrożeń w systemach Windows i K3 na potrzeby wdrożeń w systemie Ubuntu. Aby uzyskać listę konkretnych kombinacji sprzętu i oprogramowania, które są testowane i weryfikowane, zobacz Zweryfikowane środowiska.

Jeśli chcesz wdrożyć operacje usługi Azure IoT w rozwiązaniu z wieloma węzłami, użyj K3s w systemie Ubuntu.

Aby przygotować klaster Kubernetes z włączoną usługą Azure Arc, potrzebne są następujące elementy:

  • Subskrypcja Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz je bezpłatnie .

  • Interfejs wiersza polecenia platformy Azure w wersji 2.64.0 lub nowszej zainstalowany na komputerze deweloperskim. Użyj az --version polecenia , aby sprawdzić wersję i az upgrade zaktualizować w razie potrzeby. Aby uzyskać więcej informacji, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.

  • Najnowsza wersja następujących rozszerzeń interfejsu wiersza polecenia platformy Azure:

    az extension add --upgrade --name azure-iot-ops
    az extension add --upgrade --name connectedk8s
    
  • Sprzęt spełniający wymagania systemowe:

    • Upewnij się, że maszyna ma co najmniej 16 GB dostępnej pamięci RAM i 8 dostępnych procesorów wirtualnych zarezerwowanych dla operacji usługi Azure IoT.
    • Wymagania systemowe platformy Kubernetes z obsługą usługi Azure Arc.
    • Wymagania K3s.
  • Jeśli zamierzasz wdrożyć operacje usługi Azure IoT w klastrze wielowęźle z włączoną odpornością na uszkodzenia, zapoznaj się z wymaganiami dotyczącymi sprzętu i magazynu w temacie Przygotowywanie woluminów usługi Linux for Edge.

Tworzenie klastra i włączanie usługi Arc

Ta sekcja zawiera kroki tworzenia klastrów w zweryfikowanych środowiskach w systemach Linux i Windows.

Aby przygotować klaster Kubernetes K3s w systemie Ubuntu:

  1. Zainstaluj język K3s zgodnie z instrukcjami w przewodniku Szybki start K3s.

  2. Sprawdź, czy narzędzie kubectl zostało zainstalowane w ramach K3s. Jeśli nie, postępuj zgodnie z instrukcjami, aby zainstalować narzędzie kubectl w systemie Linux.

    kubectl version --client
    
  3. Postępuj zgodnie z instrukcjami, aby zainstalować program Helm.

  4. Utwórz plik yaml konfiguracji K3s w pliku .kube/config:

    mkdir ~/.kube
    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
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. 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
    
  6. Aby uzyskać lepszą wydajność, zwiększ limit deskryptora plików:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Konfigurowanie klastrów z wieloma węzłami dla usługi Azure Container Storage

W klastrach z wieloma węzłami z co najmniej trzema węzłami można włączyć odporność na uszkodzenia magazynu z usługą Azure Container Storage włączoną przez usługę Azure Arc podczas wdrażania operacji usługi Azure IoT.

Jeśli chcesz włączyć odporność na uszkodzenia podczas wdrażania, skonfiguruj klastry, wykonując kroki opisane w artykule Przygotowywanie woluminów usługi Linux dla usługi Edge przy użyciu klastra z systemem Ubuntu z wieloma węzłami.

Włączanie klastra w usłudze Arc

Połącz klaster z usługą Azure Arc, aby można było nim zarządzać zdalnie.

  1. Na maszynie, na której wdrożono klaster Kubernetes, zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure:

    az login
    

    Jeśli w dowolnym momencie wystąpi błąd informujący, że urządzenie jest wymagane do zarządzania dostępem do zasobu, uruchom ponownie polecenie az login i upewnij się, że logujesz się interaktywnie za pomocą przeglądarki.

  2. Po zalogowaniu interfejs wiersza polecenia platformy Azure wyświetla wszystkie subskrypcje i wskazuje domyślną subskrypcję gwiazdką *. Aby kontynuować subskrypcję domyślną, wybierz pozycję Enter. W przeciwnym razie wpisz liczbę subskrypcji platformy Azure, której chcesz użyć.

  3. 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"
    
  4. Użyj polecenia az group create, aby utworzyć grupę zasobów w ramach subskrypcji platformy Azure w celu przechowywania wszystkich zasobów:

    Aby uzyskać listę aktualnie obsługiwanych regionów świadczenia usługi Azure, zobacz Obsługiwane regiony.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  5. Użyj polecenia az connectedk8s connect, aby włączyć klaster Kubernetes w usłudze Arc i zarządzać nim w ramach grupy zasobów platformy Azure.

    az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity
    
  6. Pobierz adres URL wystawcy klastra.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Zapisz dane wyjściowe tego polecenia, aby użyć go w następnych krokach.

  7. Utwórz plik konfiguracji k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  8. Dodaj następującą zawartość do config.yaml pliku, zastępując <SERVICE_ACCOUNT_ISSUER> symbol zastępczy adresem URL wystawcy klastra.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  9. Zapisz plik i zamknij edytor nano.

  10. objectId Pobierz aplikację Microsoft Entra ID używaną przez usługę Azure Arc w dzierżawie i zapisz ją jako zmienną środowiskową. Uruchom następujące polecenie dokładnie zgodnie z zapisem bez zmiany wartości identyfikatora GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  11. Użyj polecenia az connectedk8s enable-features, aby włączyć obsługę lokalizacji niestandardowej w klastrze. To polecenie używa objectId aplikacji Microsoft Entra ID używanej przez usługę Azure Arc. Uruchom to polecenie na maszynie, na której wdrożono klaster Kubernetes:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  12. Uruchom ponownie K3s.

    systemctl restart k3s
    

Weryfikowanie klastra

Aby sprawdzić, czy klaster jest gotowy do wdrożenia operacji usługi Azure IoT, możesz użyć polecenia pomocnika verify-host w rozszerzeniu Operacje usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure. Po uruchomieniu na hoście klastra to polecenie pomocnika sprawdza łączność z punktami końcowymi usług Azure Resource Manager i Microsoft Container Registry.

az iot ops verify-host

Konfiguracja zaawansowana

Na tym etapie, gdy masz klaster Kubernetes z włączoną usługą Azure Arc, ale przed wdrożeniem w nim operacji usługi Azure IoT możesz skonfigurować klaster pod kątem zaawansowanych scenariuszy.

Następne kroki

Teraz, gdy masz klaster Kubernetes z włączoną usługą Azure Arc, możesz wdrożyć operacje usługi Azure IoT.