Freigeben über


Tutorial: Verbinden einer AKS-App mit Azure SQL-Datenbank (Vorschau)

In diesem Tutorial erfahren Sie, wie Sie eine in AKS bereitgestellte Anwendung mithilfe eines Dienstconnector mit Azure SQL-Datenbank verbinden (Vorschau). Sie führen die folgenden Aufgaben durch:

  • Erstellen einer Azure SQL-Datenbank-Ressource
  • Erstellen Sie mit einem Dienstconnector eine Verbindung zwischen dem AKS-Cluster und der Datenbank.
  • Aktualisieren des Containers
  • Aktualisieren des Anwendungscodes
  • Bereinigen Sie Azure-Ressourcen.

Warnung

Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind. Sehen Sie sich das Tutorial zur Verwendung einer verwalteten Identität an.

Voraussetzungen

Erstellen einer Azure-SQL-Datenbank

  1. Erstellen Sie eine Ressourcengruppe, um die Azure-Ressourcen zu speichern, die Sie in diesem Tutorial mithilfe des Befehls az group create erstellen.

    az group create \
        --name $RESOURCE_GROUP \
        --location eastus
    
  2. Befolgen Sie die Anweisungen zum Erstellen einer Azure SQL-Datenbank-Instanz in der Ressourcengruppe, die Sie im vorherigen Schritt erstellt haben. Notieren Sie sich den Servernamen, den Datenbanknamen und die Datenbankanmeldeinformationen für die Verwendung in diesem Tutorial.

Erstellen einer Dienstverbindung in AKS mit dem Dienstconnector (Vorschau)

Registrieren der Ressourcenanbieter für den Dienstconnector und die Kubernetes-Konfiguration

Sie registrieren die Ressourcenanbieter für den Dienstconnector und die Kubernetes-Konfiguration mithilfe des Befehls az provider register.

az provider register --namespace Microsoft.ServiceLinker
az provider register --namespace Microsoft.KubernetesConfiguration

Tipp

Sie können mit den Befehlen az provider show --namespace "Microsoft.ServiceLinker" --query registrationState und az provider show --namespace "Microsoft.KubernetesConfiguration" --query registrationState überprüfen, ob diese Ressourcenanbieter bereits registriert sind. Wenn die Ausgabe Registered lautet, wurde der Dienstanbieter bereits registriert.

Eine neue Verbindung erstellen

Erstellen Sie über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle eine Dienstverbindung zwischen Ihrem AKS-Cluster und Ihrer SQL-Datenbank-Instanz.

  1. Navigieren Sie im Azure-Portal zur AKS-Clusterressource.

  2. Wählen Sie Einstellungen>Dienstconnector (Vorschau)>Erstellen aus.

  3. Konfigurieren Sie auf der Registerkarte Grundlegende Einstellungen die folgenden Einstellungen:

    • Kubernetes-Namespace: Wählen Sie default aus.
    • Diensttyp: Wählen Sie SQL-Datenbank aus.
    • Verbindungsname: Verwenden Sie den vom Dienstconnector bereitgestellten Verbindungsnamen, oder geben Sie Ihren eigenen Verbindungsnamen ein.
    • Abonnement: Wählen Sie das Abonnement aus, das den Azure SQL-Datenbank-Dienst enthält.
    • SQL-Server: Wählen Sie Ihren SQL-Server aus.
    • SQL-Datenbank: Wählen Sie Ihre SQL-Datenbank-Instanz aus.
    • Clienttyp: Die Codesprache oder das Framework, die bzw. das Sie zum Herstellen einer Verbindung mit dem Zieldienst verwenden, z. B. Python

    Screenshot des Azure-Portals mit dem Formular zum Erstellen einer neuen Verbindung mit einer SQL-Datenbank-Instanz in AKS

  4. Wählen Sie Weiter: Authentifizierung aus. Geben Sie auf der Registerkarte Authentifizierung Ihren Benutzernamen und das Kennwort für die Datenbank ein.

  5. Wählen Sie Weiter: Netzwerk>Weiter: Überprüfen und Erstellen>Erstellen aus.

  6. Nach der erfolgreichen Bereitstellung können Sie im Bereich Dienstconnector Informationen zur neuen Verbindung anzeigen.

Aktualisieren des Containers

Nachdem Sie nun eine Verbindung zwischen Ihrem AKS-Cluster und der Datenbank erstellt haben, müssen Sie die Verbindungsgeheimnisse abrufen und in Ihrem Container bereitstellen.

  1. Navigieren Sie im Azure-Portal zu Ihrer AKS-Clusterressource, und wählen Sie Dienstconnector (Vorschau) aus.

  2. Wählen Sie die neu erstellte Verbindung und dann YAML-Schnipsel aus. Diese Aktion öffnet einen Bereich, in dem eine vom Dienstconnector generierte YAML-Beispieldatei angezeigt wird.

  3. Um die Verbindungsgeheimnisse als Umgebungsvariablen in Ihrem Container festzulegen, haben Sie zwei Möglichkeiten:

    • Erstellen Sie eine Bereitstellung direkt mithilfe des bereitgestellten YAML-Beispielcodeschnipsels. Der Schnipsel enthält hervorgehobene Abschnitte mit dem Geheimnisobjekt, das als Umgebungsvariablen eingefügt wird. Wählen Sie Anwenden aus, um mit diesem Verfahren fortzufahren.

      Screenshot des Azure-Portals mit dem YAML-Beispielschnipsel zum Erstellen einer neuen Verbindung mit einer SQL-Datenbank-Instanz in AKS

    • Wählen Sie alternativ unter Ressourcentyp die Option Kubernetes-Workload und dann eine vorhandene Kubernetes-Workload aus. Mit dieser Aktion wird das Geheimnisobjekt Ihrer neuen Verbindung als Umgebungsvariablen für die ausgewählte Workload fest. Nachdem Sie die Workload ausgewählt haben, wählen Sie Übernehmen aus.

      Screenshot des Azure-Portals mit dem Kubernetes-Schnipsel zum Erstellen einer neuen Verbindung mit einer SQL-Datenbank-Instanz in AKS

Aktualisieren des Anwendungscodes

Aktualisieren Sie als letzten Schritt den Anwendungscode so, dass Ihre Umgebungsvariablen verwendet werden. Befolgen Sie dazu diese Anweisungen.

Bereinigen von Ressourcen

Wenn Sie die Ressourcen, die Sie in diesem Tutorial erstellt haben, nicht mehr benötigen, können Sie sie entfernen, indem Sie die Azure-Ressourcengruppe löschen.

Sie löschen Ihre Ressourcengruppe mithilfe des Befehls az group delete.

az group delete --resource-group $RESOURCE_GROUP

Lesen Sie die folgenden Artikel, um mehr über Konzepte im Zusammenhang mit Dienstconnectors zu erfahren und sich darüber zu informieren, wie AKS Sie beim Herstellen einer Verbindung mit Azure-Diensten unterstützt: