Freigeben über


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 von az 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:

  1. Erstellen Sie einen Einzelknoten- oder Multiknoten-K3s-Cluster. Beispiele finden Sie in der K3s-Schnellstartanleitung oder in den K3s verwandten Projekten.

  2. Ü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
    
  3. Folgen Sie den Anweisungen, um Helm zu installieren.

  4. 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
    
  5. 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
    
  6. 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.

  1. 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.

  2. 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 Sie Enter aus. Geben Sie andernfalls die Nummer des Azure-Abonnements ein, das Sie verwenden möchten.

  3. 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"
    
  4. 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:

    1. Befolgen Sie die Anweisungen in Connect entweder mithilfe eines ausgehenden Proxyservers oder Onboarding von Kubernetes-Clustern in Azure Arc mit Azure Arc Gateway.
    2. Add 169.254.169.254 to the --proxy-skip-range parameter of the az 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.

  5. 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.

  6. Erstellen Sie eine K3s-Konfigurationsdatei.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. 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
    
  8. Speichern Sie die Datei, und beenden Sie den Nano-Editor.

  9. 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.

  1. 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
    
  2. 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.

Nächste Schritte

Sie haben nun einen Azure Arc-fähigen Kubernetes-Cluster, den Sie für Azure IoT Einsatz bereitstellen können.