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 CLIkubectl
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:
- Übersicht über Azure Arc-fähige Datendienste
- Konnektivitätsmodi und -anforderungen
- Speicherkonfiguration und Kubernetes-Speicherkonzepte
- Kubernetes-Ressourcenmodell
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.
- Um die Speicherklasse für die Sicherungen festzulegen, geben Sie den Parameter
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
undAZDATA_PASSWORD
in derselben Terminalsitzung bereitgestellt haben, werden die Werte fürAZDATA_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ürAZDATA_USERNAME
undAZDATA_PASSWORD
aktualisieren, (2) die UmgebungsvariablenAZDATA_USERNAME
undAZDATA_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
Zugehöriger Inhalt
Verbindungsherstellung mit Ihrem PostgreSQL-Server mit Azure Arc-Unterstützung: Lesen Sie den Artikel Abrufen von Verbindungsendpunkten und Verbindungszeichenfolgen.
* Überspringen Sie in den oben aufgeführten Dokumenten die Abschnitte Anmelden beim Azure-Portal und Erstellen einer Azure Database for PostgreSQL-Instanz. Implementieren Sie die restlichen Schritte in Ihrer Azure Arc-Bereitstellung. Diese Abschnitte gelten nur für den Azure Database for PostgreSQL-Server, der in der Azure-Cloud als PaaS-Dienst angeboten wird. Die restlichen Abschnitte der Dokumente sind direkt auf Ihren PostgreSQL-Server mit Azure Arc-Unterstützung übertragbar.