Erstellen eines PostgreSQL-Servers mit Azure Arc-Unterstützung über die CLI

Dieses Dokument beschreibt die Schritte zum Erstellen eines PostgreSQL-Servers in Azure Arc sowie die Verbindungsherstellung mit diesem Server.

Voraussetzungen

Bevor Sie mit den Aufgaben in diesem Artikel fortfahren können, benötigen Sie die notwendigen Tools. Alle Bereitstellungen erfordern die folgenden Tools:

  • Azure Data Studio

  • Azure Arc-Erweiterung für Azure Data Studio

  • Azure CLI (az)

  • arcdata-Erweiterung für die Azure CLI

  • kubectl

    Zusätzliche Clienttools je nach Ihrer Umgebung. Eine umfassendere Liste finden Sie unter Clienttools.

Zusätzlich zu den erforderlichen Tools benötigen Sie zum Abschließen der Aufgaben einen Azure Arc-Datencontroller.

Hinweis

Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.

Die neuesten Updates sind in den Versionshinweisenverfügbar.

Erste Schritte

Wenn Sie bereits mit den folgenden Themen vertraut sind, können Sie diesen Absatz überspringen. Dabei handelt es sich um wichtige Themen, die Sie lesen sollten, bevor Sie mit dem Erstellen beginnen:

Wenn Sie es vorziehen, dies auszuprobieren, ohne selbst eine vollständige Umgebung bereitzustellen, können Sie mit dem Azure Arc-Schnelleinstieg in Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) oder auf einer Azure-VM einsteigen.

Vorläufiger und temporärer Schritt nur für OpenShift-Benutzer

Implementieren Sie diesen Schritt, bevor Sie mit dem nächsten fortfahren. Sie müssen die folgenden Befehle zum Aktualisieren der Sicherheitseinschränkungen für Ihren Cluster ausführen, um einen PostgreSQL-Server auf Red Hat OpenShift in einem Projekt bereitzustellen, das nicht dem Standardprojekt entspricht. Mit diesem Befehl werden den Dienstkonten zur Ausführung Ihres PostgreSQL-Servers die benötigten Berechtigungen gewährt. Die Sicherheitskontexteinschränkung arc-data-scc haben Sie hinzugefügt, als Sie den Azure Arc-Datencontroller bereitgestellt haben.

oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>

„server-name“ steht für den Namen des Servers, den Sie im nächsten Schritt erstellen.

Weitere Informationen zu Sicherheitskontexteinschränkungen in OpenShift finden Sie in der OpenShift-Dokumentation. Fahren Sie mit dem nächsten Schritt fort.

Erstellen eines PostgreSQL-Servers mit Azure Arc-Unterstützung

Um einen PostgreSQL-Server mit Azure Arc-Unterstützung auf Ihrem Arc-Datencontroller zu erstellen, verwenden Sie den Befehl az postgres server-arc create, an den Sie mehrere Parameter übergeben.

Details zu allen Parametern, die Sie bei der Erstellung festlegen können, finden Sie in der Ausgabe des Befehls:

az postgres server-arc create --help

Folgende Hauptparameter sollten Sie berücksichtigen:

  • Der Name des Servers, den Sie bereitstellen möchten. Geben Sie entweder --name oder -n an, gefolgt von einem Namen mit maximal 11 Zeichen.

  • Die Speicherklassen, die der Server verwenden soll. Es ist wichtig, dass Sie zum Zeitpunkt der Bereitstellung eines Servers die richtige Speicherklasse festlegen, da diese Einstellung nach der Bereitstellung nicht mehr geändert werden kann. Sie können die Speicherklassen angeben, die für die Daten, Protokolle und Sicherungen verwendet werden sollen. Wenn Sie keine Speicherklassen angeben, werden standardmäßig die Speicherklassen des Datencontrollers verwendet.

    • Um die Speicherklasse für die Sicherungen festzulegen, geben Sie den Parameter --storage-class-backups, gefolgt vom Namen der Speicherklasse an. Durch Ausschließen dieses Parameters werden automatisierte Sicherungen deaktiviert.
    • Um die Speicherklasse für die Daten festzulegen, geben Sie den Parameter --storage-class-data, gefolgt vom Namen der Speicherklasse an.
    • Um die Speicherklasse für die Protokolle festzulegen, geben Sie den Parameter --storage-class-logs, gefolgt vom Namen der Speicherklasse an.

    Wichtig

    Wenn Sie die Speicherklasse nach der Bereitstellung ändern müssen, extrahieren Sie die Daten, löschen Sie Ihren Server, erstellen Sie einen neuen Server, und importieren Sie die Daten.

Beim Ausführen des Befehls „create“ werden Sie aufgefordert, den Benutzernamen und das Kennwort für den Administratorbenutzer einzugeben. Sie können die interaktive Eingabeaufforderung überspringen, indem Sie die Sitzungsumgebungsvariable AZDATA_USERNAME und AZDATA_PASSWORD festlegen, bevor Sie den Erstellungsbefehl ausführen.

Beispiele

Führen Sie den folgenden Befehl aus, um einen PostgreSQL-Server mit dem Namen „postgres01“ bereitzustellen, der die gleichen Speicherklassen wie der Datencontroller verwendet:

az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s

Hinweis

  • Wenn Sie den Datencontroller mithilfe der Sitzungsumgebungsvariablen AZDATA_USERNAME und AZDATA_PASSWORD in derselben Terminalsitzung bereitgestellt haben, werden die Werte für AZDATA_PASSWORD auch verwendet, um den PostgreSQL-Server bereitzustellen. Wenn Sie lieber ein anderes Kennwort verwenden möchten, können Sie entweder (1) die Werte für AZDATA_USERNAME und AZDATA_PASSWORD aktualisieren, (2) die Umgebungsvariablen AZDATA_USERNAME und AZDATA_PASSWORD oder (3) deren Werte löschen. Im letzteren Fall werden Sie beim Erstellen eines Servers interaktiv zur Eingabe von Benutzername und Kennwort aufgefordert.
  • Durch das Erstellen eines PostgreSQL-Servers werden nicht sofort Ressourcen in Azure registriert. Im Rahmen des Uploads des Ressourcenbestands oder der Nutzungsdaten in Azure, werden die Ressourcen in Azure erstellt, und Sie können Ihre Ressourcen im Azure-Portal anzeigen.

Auflisten der in Ihrem Arc-Datencontroller bereitgestellten PostgreSQL-Server

Führen Sie den folgenden Befehl aus, um die in Ihrem Arc-Datencontroller bereitgestellten PostgreSQL-Server aufzulisten:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
  {
    "name": "postgres01",
    "state": "Ready"
  }

Abrufen der Endpunkte zur Verbindungsherstellung mit den PostgreSQL-Servern mit Azure Arc-Unterstützung

Führen Sie den folgenden Befehl aus, um die Endpunkte für einen PostgreSQL-Server anzuzeigen:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

Beispiel:

{
  "instances": [
    {
      "endpoints": [
        {
          "description": "PostgreSQL Instance",
          "endpoint": "postgresql://postgres:<replace with password>@123.456.78.912:5432"
        },
        {
          "description": "Log Search Dashboard",
        },
        {
          "description": "Metrics Dashboard",
          "endpoint": "https://98.765.432.11:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
        }
      ],
      "engine": "PostgreSql",
      "name": "postgres01"
    }
  ],
  "namespace": "arc"
}

Sie können den Endpunkt der PostgreSQL-Instanz verwenden, um über Ihr bevorzugtes Tool eine Verbindung mit dem PostgreSQL-Server herzustellen: Azure Data Studio, pgcli psql, pgAdmin usw.

Verwenden Sie hier den Insiders-Build von Azure Data Studio.

Besonderer Hinweis zu Azure-VM-Bereitstellungen

Wenn Sie eine Azure-VM verwenden, zeigt die Endpunkt-IP-Adresse die öffentliche IP-Adresse nicht an. Verwenden Sie den folgenden Befehl, um die öffentliche IP-Adresse zu ermitteln:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Sie können die öffentliche IP-Adresse mit dem Port kombinieren, um Ihre Verbindung herzustellen.

Möglicherweise müssen Sie den Port des PostgreSQL-Servers über das Netzwerksicherheitsgateway (NSG) verfügbar machen. Um Datenverkehr über das Netzwerksicherheitsgateway (NSG) zuzulassen, legen Sie eine Regel fest. Zum Festlegen einer Regel müssen Sie den Namen Ihres Netzwerksicherheitsgateways kennen. Sie bestimmen das Netzwerksicherheitsgateway mithilfe des folgenden Befehls:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

Sobald Sie den Namen des Netzwerksicherheitsgateways kennen, können Sie mithilfe des folgenden Befehls eine Firewallregel hinzufügen. Mit den hier gezeigten Beispielwerten wird eine Netzwerksicherheitsgateway-Regel für Port 30655 erstellt und das Herstellen von Verbindungen über beliebige Quell-IP-Adressen zugelassen.

Warnung

Es wird nicht empfohlen, eine Regel festzulegen, um Verbindungen von einer beliebigen Quell-IP-Adresse zuzulassen. Sie können mehr Sicherheit gewährleisten, indem Sie einen -source-address-prefixes-Wert festlegen, der spezifisch für Ihre Client-IP-Adresse oder einen IP-Adressbereich gilt, der die IP-Adressen Ihres Teams oder Ihrer Organisation umfasst.

Ersetzen Sie den Wert des --destination-port-ranges-Parameters unten durch die Portnummer, die Sie aus dem Befehl az postgres server-arc list oben abgerufen haben.

az network nsg rule create -n db_port --destination-port-ranges 30655 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'

Herstellen einer Verbindung mit Azure Data Studio

Öffnen Sie Azure Data Studio, und stellen Sie mit der Endpunkt-IP-Adresse und der Portnummer oben eine Verbindung mit Ihrer Instanz her. Verwenden Sie hierzu das Kennwort, das Sie beim Erstellen der Instanz festgelegt haben. Wenn PostgreSQL nicht im Dropdownmenü Verbindungstyp verfügbar ist, können Sie die PostgreSQL-Erweiterung installieren, indem Sie in der Registerkarte „Erweiterungen“ nach „PostgreSQL“ suchen.

Hinweis

Sie müssen im Verbindungsbereich auf die Schaltfläche „[Advanced]“ (Erweitert) klicken, um die Portnummer einzugeben.

Denken Sie daran, dass Sie die öffentliche IP-Adresse benötigen, auf die Sie mithilfe des folgenden Befehls zugreifen können, wenn Sie eine Azure-VM verwenden:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Herstellen einer Verbindung mit psql

Um auf Ihren PostgreSQL-Server zuzugreifen, übergeben Sie den externen Endpunkt des PostgreSQL-Servers, den Sie oben abgerufen haben:

Sie können nun eine Verbindung mit psql herstellen:

psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655