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ę iaz 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:
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:
Zainstaluj język K3s zgodnie z instrukcjami w przewodniku Szybki start K3s.
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
Postępuj zgodnie z instrukcjami, aby zainstalować program Helm.
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
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
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.
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.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ć.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:
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>
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
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.
Utwórz plik konfiguracji k3s.
sudo nano /etc/rancher/k3s/config.yaml
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
Zapisz plik i zamknij edytor nano.
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)
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
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.
- Jeśli chcesz włączyć funkcje obserwacji w klastrze, wykonaj kroki opisane w artykule Wdrażanie zasobów obserwowania i konfigurowanie dzienników.
- Jeśli chcesz skonfigurować własnego wystawcę certyfikatów w klastrze, wykonaj kroki opisane w temacie Zarządzanie certyfikatami > Przynieś własny wystawca.
Następne kroki
Teraz, gdy masz klaster Kubernetes z włączoną usługą Azure Arc, możesz wdrożyć operacje usługi Azure IoT.