Vorbereiten Ihres Azure Arc-aktivierten Kubernetes-Clusters
Ein Azure Arc-fähiger Kubernetes-Cluster ist eine Voraussetzung für die Bereitstellung von Azure IoT Einsatz. In diesem Artikel wird beschrieben, wie Sie einen Cluster vorbereiten, bevor Sie „Azure IoT Einsatz“ bereitstellen. Dieser Artikel enthält Anleitungen für Ubuntu und Windows.
Die Schritte in diesem Artikel bereiten Ihren Cluster auf eine Bereitstellung sicherer Einstellungen vor, was ein längerer, aber produktionsbereiter Prozess ist. Wenn Sie Azure IoT Einsatz schnell bereitstellen und eine Beispielworkload nur mit Testeinstellungen ausführen möchten, informieren Sie sich stattdessen im Schnellstart: Ausführen von Azure IoT Einsatz in GitHub Codespaces mit K3s. Weitere Informationen zu Testeinstellungen und sicheren Einstellungen finden Sie unter Bereitstellungsdetails > Auswählen Ihrer Features.
Voraussetzungen
Microsoft unterstützt Azure Kubernetes Service (AKS) Edge Essentials für Bereitstellungen unter Windows und K3s für Bereitstellungen auf Ubuntu. Wenn Sie Azure IoT Operations in einer Multiknotenlösung bereitstellen möchten, verwenden Sie K3s auf Ubuntu.
Zum Vorbereiten eines Azure Arc-fähigen Kubernetes-Clusters benötigen Sie:
Ein Azure-Abonnement mit der Rolle „Besitzer“ oder einer Kombination der beiden Rollen „Mitwirkender“ und „Benutzerzugriffsadministrator“. Sie können Ihre Zugriffsebene überprüfen, indem Sie zu Ihrem Abonnement navigieren, auf der linken Seite des Azure-Portals die Option „Zugriffssteuerung (IAM)“ auswählen und dann die Option „Meinen Zugriff anzeigen“ auswählen. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Eine Azure-Ressourcengruppe. Pro Ressourcengruppe wird nur eine Azure IoT Operations-Instanz unterstützt. Verwenden Sie zum Erstellen einer neuen Ressourcengruppe den Befehl az group create. Die Liste aller aktuell unterstützten Azure-Regionen finden Sie unter Unterstützte Regionen.
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
Azure CLI, Version 2.64.0 oder höher, installiert auf Ihrem Clustercomputer. Verwenden Sie
az --version
, um Ihre Version zu überprüfen. Bei Bedarf können Sie sie mithilfe vonaz upgrade
aktualisieren. Weitere Informationen finden Sie unter Installieren der Azure CLI.Die neueste Version der connectedk8s-Erweiterung für die Azure CLI:
az extension add --upgrade --name connectedk8s
Hardware, die die Systemanforderungen erfüllt:
Wenn Sie Azure IoT Operations in einem Multiknotencluster mit aktivierter Fehlertoleranz bereitstellen möchten, überprüfen Sie die Hardware- und Speicheranforderungen in Vorbereiten von Linux für Edgevolumes.
Erstellen eines Clusters und Konfigurieren dieses Clusters als Arc-fähig
Dieser Abschnitt enthält Schritte zum Erstellen von Clustern in validierten Umgebungen unter Linux und Windows.
So Bereiten Sie einen K3s-Kubernetes-Cluster in Ubuntu vor:
Erstellen Sie einen Einzelknoten- oder Multiknoten-K3s-Cluster. Beispiele finden Sie in der K3s-Schnellstartanleitung oder in den K3s verwandten Projekten.
Überprüfen Sie, ob kubectl als Teil von K3s installiert wurde. Wenn nicht, folgen Sie den Anweisungen, um kubectl unter Linux zu installieren.
kubectl version --client
Folgen Sie den Anweisungen, um Helm zu installieren.
Erstellen Sie eine YAML-Datei für die K3s-Konfiguration in
.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
Führen Sie den folgenden Befehl aus, um die Benutzerüberwachungs-/Instanzbeschränkungen zu erhöhen.
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
Um eine bessere Leistung zu erzielen, erhöhen Sie den Grenzwert für Dateideskriptor:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Machen Sie Ihr Cluster Arc-fähig
Verbinden Sie Ihren Cluster mit Azure Arc, damit er remote verwaltet werden kann.
Melden Sie sich auf dem Computer, auf dem Sie den Kubernetes-Cluster bereitgestellt haben, mit Ihrem Microsoft Entra-Benutzerkonto, das über die erforderlichen Rollen für das Azure-Abonnement verfügt, bei der Azure CLI an:
az login
Wenn an irgendeinem Punkt ein Fehler angezeigt wird, der besagt, dass Ihr Gerät für den Zugriff auf Ihre Ressource verwaltet werden muss, führen Sie
az login
erneut aus, und stellen Sie sicher, dass Sie sich interaktiv mit einem Browser anmelden.Nachdem Sie sich angemeldet haben, zeigt die Azure CLI alle Ihre Abonnements an und kennzeichnet Ihr Standardabonnement mit einem Sternchen
*
. Um mit Ihrem Standardabonnement fortzufahren, wählen SieEnter
aus. Geben Sie andernfalls die Nummer des Azure-Abonnements ein, das Sie verwenden möchten.Registrieren Sie die erforderlichen Ressourcenanbieter in Ihrem Abonnement.
Hinweis
Dieser Schritt muss nur einmal pro Abonnement durchgeführt werden. Zum Registrieren von Ressourcenanbietern benötigen Sie die Berechtigung zum Ausführen des
/register/action
-Vorgangs, welche in den Rollen „Mitwirkender“ und „Besitzer“ des Abonnements enthalten ist. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.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"
Verwenden Sie den Befehl az connectedk8s connect, um Ihren Kubernetes-Cluster als Arc-fähig zu konfigurieren und ihn als Teil Ihrer Azure-Ressourcengruppe zu verwalten.
az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
Um ungeplante Updates für Azure Arc und die systemseitigen Arc-Erweiterungen zu verhindern, die Azure IoT Einsatz als Abhängigkeiten verwendet, deaktiviert dieser Befehl das automatische Upgrade. Aktualisieren Sie stattdessen die Agents nach Bedarf manuell.
Wichtig
Wenn Ihre Umgebung einen Proxyserver oder Azure Arc Gateway verwendet, ändern Sie den
az connectedk8s connect
Befehl mit Ihren Proxyinformationen:- Befolgen Sie die Anweisungen in Connect entweder mithilfe eines ausgehenden Proxyservers oder Onboarding von Kubernetes-Clustern in Azure Arc mit Azure Arc Gateway.
- Add
169.254.169.254
to the--proxy-skip-range
parameter of theaz connectedk8s connect
command. Azure-Geräteregistrierung verwendet diesen lokalen Endpunkt, um Zugriffstoken für die Autorisierung abzurufen.
Azure IoT Einsatz unterstützt keine Proxyserver, die ein vertrauenswürdiges Zertifikat erfordern.
Rufen Sie die Aussteller-URL des Clusters ab.
az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Speichern Sie die Ausgabe dieses Befehls, die sie in den nächsten Schritten verwenden soll.
Erstellen Sie eine K3s-Konfigurationsdatei.
sudo nano /etc/rancher/k3s/config.yaml
Fügen Sie der Datei
config.yaml
den folgenden Inhalt hinzu, und ersetzen Sie den<SERVICE_ACCOUNT_ISSUER>
Platzhalter durch die Aussteller-URL Ihres Clusters.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Speichern Sie die Datei, und beenden Sie den Nano-Editor.
Bereiten Sie sich darauf vor, den benutzerdefinierten Speicherort des Azure Arc-Diensts auf Ihrem Arc-Cluster zu aktivieren, indem Sie die Objekt-ID für den benutzerdefinierten Speicherort abrufen und als Umgebungsvariable OBJECT_ID speichern. Sie müssen mit einem Microsoft Entra-Benutzerkonto bei der Azure CLI angemeldet sein, um den Befehl erfolgreich auszuführen, nicht mit einem Dienstprinzipal. Führen Sie den folgenden Befehl genau wie angegeben aus, ohne den GUID-Wert zu ändern.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Hinweis
Möglicherweise erhalten Sie die folgende Fehlermeldung: „OID der App 'custom-locations' kann nicht abgerufen werden. Fortfahren ohne Aktivierung des Features. Unzureichende Berechtigungen zum Abschließen des Vorgangs.“ In diesem Fall verwenden Sie möglicherweise einen Dienstprinzipal, der nicht über die erforderlichen Berechtigungen zum Abrufen der Objekt-ID des benutzerdefinierten Speicherorts verfügt. Melden Sie sich bei der Azure CLI mit einem Microsoft Entra-Benutzerkonto an, das die Voraussetzungen erfüllt.
Verwenden Sie den Befehl az connectedk8s enable-features, um die Funktion für benutzerdefinierte Speicherorte für Ihren Arc-Cluster zu aktivieren. Dieser Befehl verwendet die im vorherigen Schritt gespeicherte OBJECT_ID-Umgebungsvariable, um den Wert für den Parameter „custom-locations-oid“ festzulegen. Führen Sie diesen Befehl auf dem Computer aus, auf dem Sie das Kubernetes-Cluster bereitgestellt haben:
az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Starten Sie K3s neu.
systemctl restart k3s
Konfigurieren Sie Cluster mit mehreren Knoten für Azure Container Storage
Bei Clustern mit mehreren Knoten mit mindestens drei Knoten haben Sie die Möglichkeit, die Fehlertoleranz für den Speicher mit Azure Container Storage zu aktivieren, der von Azure Arc aktiviert ist, wenn Sie Azure IoT Operations bereitstellen.
Wenn Sie die Fehlertoleranz während der Bereitstellung aktivieren möchten, konfigurieren Sie Ihre Cluster, indem Sie die Schritte in Vorbereiten von Linux für Edgevolumes mithilfe eines Ubuntu-Clusters mit mehreren Knoten ausführen.
Erweiterte Konfiguration
Sie verfügen jetzt über einen Azure Arc-fähigen Kubernetes-Cluster. Bevor Sie „Azure IoT Einsatz“ dafür bereitstellen, sollten Sie Ihren Cluster für erweiterte Szenarien konfigurieren.
- Wenn Sie Einblickfunktionen für das Cluster aktivieren möchten, führen Sie die Schritte in Bereitstellen von Einblickressourcen und Einrichten von Protokollen aus.
- Wenn Sie Ihren eigenen Zertifikataussteller im Cluster konfigurieren möchten, führen Sie die Schritte unter Zertifikatverwaltung > Nutzen Sie Ihren eigenen Aussteller aus.
Nächste Schritte
Sie haben nun einen Azure Arc-fähigen Kubernetes-Cluster, den Sie für Azure IoT Einsatz bereitstellen können.