Freigeben über


Schnellstart: Bereitstellen eines Azure Kubernetes Service-Clusters (AKS) mithilfe der Azure Developer CLI

Azure Kubernetes Service (AKS) ist ein verwalteter Kubernetes-Dienst, mit dem Sie schnell Cluster bereitstellen und verwalten können. In dieser Schnellstartanleitung lernen Sie Folgendes:

  • Installieren der Azure Developer CLI (azd)
  • Klonen von Anwendungen aus einer Azure Developer CLI-Vorlage (azd-Vorlage)
  • Bereitstellen eines AKS-Clusters mithilfe der Azure Developer CLI (azd)
  • Ausführen einer Beispielanwendung mit mehreren Containern mit einer Gruppe von Microservices, die eine Einzelhandels-App simulieren
  • Löschen und Bereinigen von Containern, die mit der azd-Vorlage erstellt wurden

Hinweis

Um schnell mit der Bereitstellung eines AKS-Clusters zu beginnen, enthält dieser Artikel Schritte zum Bereitstellen eines Clusters mit Standardeinstellungen nur zu Evaluierungszwecken. Bevor Sie einen produktionsbereiten Cluster bereitstellen, empfehlen wir Ihnen, sich mit unserer Baselinereferenzarchitektur vertraut zu machen, um zu prüfen, inwiefern sie Ihren Geschäftsanforderungen entspricht.

Voraussetzungen

Für diese Schnellstartanleitung werden Grundkenntnisse in Bezug auf die Kubernetes-Konzepte vorausgesetzt. Weitere Informationen finden Sie unter Grundlegende Kubernetes-Konzepte für Azure Kubernetes Service (AKS).

Überprüfen des Anwendungscodes

Sie können den Anwendungscode im GitHub-Repository Azure-Samples/aks-store-demo überprüfen.

Die Schnellstartanwendung umfasst dieses Manifest die folgenden Kubernetes-Bereitstellungen und -Dienste:

Diagramm, das die Azure Store-Beispielarchitektur zeigt.

  • Store Front: Webanwendung für Kund*innen zum Anzeigen von Produkten und Aufgeben von Bestellungen
  • Product Service: zeigt Produktinformationen an.
  • Order Service: dient der Aufgabe von Bestellungen.
  • Rabbit MQ: Nachrichtenwarteschlange für eine Bestellwarteschlange

Hinweis

Zustandsbehaftete Container wie Rabbit MQ sollten nicht ohne permanenten Speicher für die Nutzung in der Produktion ausgeführt werden. Sie werden hier der Einfachheit halber verwendet, jedoch sollten stattdessen verwaltete Dienste wie Azure CosmosDB oder Azure Service Bus verwendet werden.

Klonen der Azure Developer CLI-Vorlage

  1. Klonen Sie die Demovorlage für einen AKS-Store aus dem Azure-Samples-Repository, indem Sie den Befehl azd init mit dem Parameter --template ausführen.

    azd init --template Azure-Samples/aks-store-demo
    
  2. Geben Sie einen Umgebungsnamen für Ihr Projekt ein, der nur alphanumerische Zeichen und Bindestriche enthält, z. B. aks-azdqs-1.

    Enter a new environment name: aks-azdqs-1
    

Anmelden beim Azure-Cloudkonto

Die azd-Vorlage enthält den gesamten Code, der zum Erstellen der Dienste erforderlich ist. Sie müssen sich jedoch bei Ihrem Azure-Konto anmelden, um die Anwendung in AKS zu hosten.

  1. Melden Sie sich mithilfe des Befehls azd auth login bei Ihrem Konto an.

    azd auth login
    
  2. Kopieren Sie den Gerätecode, der in der Ausgabe angezeigt wird, und drücken Sie die EINGABETASTE, um sich anzumelden.

    Start by copying the next code: XXXXXXXXX
    Then press enter and continue to log in from your browser...
    

    Wichtig

    Wenn Sie einen virtuellen Computer außerhalb des Netzwerks oder GitHub Codespace verwenden, verursachen bestimmte Azure-Sicherheitsrichtlinien Konflikte bei der Anmeldung über azd auth login. Wenn Sie hierbei Probleme haben, können Sie die weiter unten erläuterte Problemumgehung mit azd auth und einer curl-Anforderung an die Localhost-URL verwenden, zu der Sie nach dem Ausführen von [azd auth login][az-auth-login] weitergeleitet wurden.

  3. Authentifizieren Sie sich mit Ihren Anmeldeinformationen auf der Anmeldeseite Ihrer Organisation.

  4. Bestätigen Sie, dass Sie die Person sind, die versucht, eine Verbindung mit der Azure CLI herzustellen.

  5. Vergewissern Sie sich, dass die Meldung „Gerätecodeauthentifizierung abgeschlossen. Bei Azure angemeldet.“ im ursprünglichen Terminal angezeigt wird.

    Waiting for you to complete authentication in the browser...
    Device code authentication completed.
    Logged in to Azure.
    

Problemumgehung mit „azd auth“

Für diese Problemumgehung müssen Sie die Azure CLI installiert haben.

  1. Öffnen Sie ein Terminalfenster, und melden Sie sich über die Azure CLI mit dem Befehl az login an. Legen Sie dabei den Parameter --scope auf https://graph.microsoft.com/.default fest.

    az login --scope https://graph.microsoft.com/.default
    

    Sie sollten auf eine Authentifizierungsseite auf einer neuen Registerkarte umgeleitet werden, um ein Browserzugriffstoken zu erstellen, wie im folgenden Beispiel zu sehen:

    https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
    
  2. Kopieren Sie die Localhost-URL der Webseite, die Sie erhalten haben, nachdem Sie versucht haben, sich mit azd auth login anzumelden.

  3. Verwenden Sie in einem neuen Terminalfenster die folgende curl-Anforderung, um sich anzumelden. Stellen Sie sicher, dass Sie den Platzhalter <localhost> durch die Localhost-URL ersetzen, die Sie im vorherigen Schritt kopiert haben.

    curl <localhost>
    

    Bei einer erfolgreichen Anmeldung wird eine HTML-Webseite ausgegeben, wie im folgenden Beispiel zu sehen:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/">
        <title>Login successfully</title>
        <style>
            body {
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            }
    
            code {
                font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
                display: inline-block;
                background-color: rgb(242, 242, 242);
                padding: 12px 16px;
                margin: 8px 0px;
            }
        </style>
    </head>
    <body>
        <h3>You have logged into Microsoft Azure!</h3>
        <p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p>
        <h3>Announcements</h3>
        <p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p>
        <p>You may opt-in to use WAM by running the following commands:</p>
        <code>
            az config set core.allow_broker=true<br>
            az account clear<br>
            az login
        </code>
    </body>
    </html>
    
  4. Schließen Sie das aktuelle Terminal, und öffnen Sie das ursprüngliche. Ihnen sollte nun eine JSON-Liste mit Ihren Abonnements angezeigt werden.

  5. Kopieren Sie das id-Feld des Abonnements, das Sie verwenden möchten.

  6. Legen Sie Ihr Abonnement mithilfe des Befehls az account set fest.

    az account set --subscription <subscription_id>
    

Erstellen und Bereitstellen von Ressourcen für Ihren Cluster

azd führt alle Hooks im azd-hooks-Ordner aus, um die Anwendungsdienste vorab zu registrieren und bereitzustellen.

Mit der azd-Vorlage für diese Schnellstartanleitung wird eine neue Ressourcengruppe mit einem AKS-Cluster und einer Azure Key Vault-Instanz erstellt. Die Key Vault-Instanz speichert geheime Clientschlüssel und führt die Dienste im Namespace pets aus.

  1. Erstellen Sie mit dem Befehl azd up alle Anwendungsressourcen.

    azd up
    
  2. Wählen Sie ein Azure-Abonnement für die Abrechnung aus.

    ? Select an Azure Subscription to use:  [Use arrows to move, type to filter]
    > 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
    
  3. Wählen Sie eine Region aus, in der Ihre Anwendung bereitgestellt werden soll.

    Select an Azure location to use:  [Use arrows to move, type to filter]
      1.  (South America) Brazil Southeast (brazilsoutheast)
      2.  (US) Central US (centralus)
      3.  (US) East US (eastus)
    > 43. (US) East US 2 (eastus2)
      4.  (US) East US STG (eastusstg)
      5.  (US) North Central US (northcentralus)
      6.  (US) South Central US (southcentralus)
    

    azd führt automatisch die Befehle für vor und nach der Bereitstellung aus, um die Ressourcen für Ihre Anwendung zu erstellen. Dieser Vorgang kann einige Minuten dauern. Anschließend sollte eine Ausgabe ähnlich der folgenden Beispielausgabe angezeigt werden:

    SUCCESS: Your workflow to provision and deploy to Azure completed in 9 minutes 40 seconds.
    

Testen der Anwendung

Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Dienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Minuten dauern. Verwenden Sie zum Verwalten eines Kubernetes-Clusters den Kubernetes-Befehlszeilenclient kubectl. kubectl wird schon während azd up installiert.

  1. Verwenden Sie den Befehl pets, um Ihren Namespace auf den Demonamespace kubectl set-context festzulegen.

    kubectl config set-context --current --namespace=pets
    
  2. Überprüfen Sie den Status der bereitgestellten Pods mithilfe des Befehls kubectl get pods. Stellen Sie sicher, dass alle Pods den Status Running haben, bevor Sie fortfahren.

    kubectl get pods
    
  3. Suchen Sie nach einer öffentlichen IP-Adresse für die Storefront-Anwendung, und überwachen Sie den Fortschritt mithilfe des Befehls kubectl get service mit dem Argument --watch.

    kubectl get service store-front --watch
    

    Die Ausgabe von EXTERNAL-IP für den store-front-Dienst lautet anfangs pending (ausstehend):

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   <pending>     80:30025/TCP   4h4m
    
  4. Nachdem die externe IP-Adresse (EXTERNAL-IP) von ausstehend in eine tatsächliche öffentliche IP-Adresse geändert wurde, verwenden Sie CTRL-C, um die kubectl-Überwachung zu beenden.

    Die folgende Beispielausgabe zeigt eine gültige öffentliche IP-Adresse, die dem Dienst zugewiesen ist:

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   20.62.159.19   80:30025/TCP   4h5m
    
  5. Öffnen Sie einen Webbrowser mit der externen IP-Adresse Ihres Dienstes, um die Azure Store-App in Aktion zu sehen.

    Screenshot der AKS Store-Beispielanwendung

Löschen des Clusters

Bereinigen Sie nach Abschluss der Schnellstartanleitung die nicht benötigten Ressourcen, um Azure-Gebühren zu vermeiden.

  1. Löschen Sie alle in der Schnellstartanleitung erstellten Ressourcen mit dem Befehl azd down.

    azd down
    
  2. Bestätigen Sie Ihre Entscheidung, alle verwendeten Ressourcen aus Ihrem Abonnement zu entfernen, indem Sie y eingeben und die Enter-TASTE drücken.

    ? Total resources to delete: 14, are you sure you want to continue? (y/N)
    
  3. Erlauben Sie bei der Bereinigung, dass die Variablen aus dieser Schnellstartanleitung ggf. wiederverwendet werden, indem Sie y tippen und dann die Enter-TASTE drücken.

    [Warning]: These resources have soft delete enabled allowing them to be recovered for a period or time after deletion. During this period, their names may not be reused. In the future, you can use the argument --purge to skip this confirmation.
    
    ? Would you like to permanently delete these resources instead, allowing their names to be reused? (y/N)
    

    Sobald die Ressourcen gelöscht sind, sollte eine Ausgabe ähnlich der folgenden Beispielausgabe angezeigt werden:

    SUCCESS: Your application was removed from Azure in 14 minutes 30 seconds.
    

Hinweis

Diese Beispielanwendung dient zu Demozwecken und stellt nicht alle bewährten Methoden für Kubernetes-Anwendungen dar. Anleitungen zum Erstellen vollständiger Lösungen mit AKS für die Produktion finden Sie unter AKS-Lösungsleitfaden.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie einen Kubernetes-Cluster und eine Beispielanwendung mit mehreren Containern dafür bereitgestellt. Diese Beispielanwendung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für Kubernetes-Anwendungen dar. Anleitungen zum Erstellen vollständiger Lösungen mit AKS für die Produktion finden Sie unter AKS-Lösungsleitfaden.

Weitere Informationen zu Azure Kubernetes Service (AKS) sowie ein vollständiges Beispiel vom Code bis zur Bereitstellung finden Sie im Tutorial zu Kubernetes-Clustern.