Een PostgreSQL-server met Azure Arc maken vanuit CLI

In dit document worden de stappen beschreven voor het maken van een PostgreSQL-server in Azure Arc en om er verbinding mee te maken.

Vereisten

Voordat u verder kunt gaan met de taken in dit artikel, moet u over de benodigde hulpprogramma's beschikken. Voor alle implementaties zijn de volgende hulpprogramma's vereist:

  • Azure Data Studio

  • Azure Arc-extensie voor Azure Data Studio

  • Azure CLI (az)

  • arcdata extensie voor Azure CLI

  • kubectl

    Aanvullende clienthulpprogramma's, afhankelijk van uw omgeving. Zie Clienthulpprogramma's voor een uitgebreidere lijst.

Naast de vereiste hulpprogramma's hebt u een Azure Arc-gegevenscontroller nodig om de taken uit te voeren.

Notitie

Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

De meest recente updates zijn beschikbaar in de releaseopmerkingen.

Aan de slag

Als u al bekend bent met de onderstaande onderwerpen, kunt u deze alinea overslaan. Er zijn belangrijke onderwerpen die u mogelijk wilt lezen voordat u verdergaat met het maken:

Als u dingen liever zelf wilt uitproberen zonder een volledige omgeving in te richten, gaat u snel aan de slag met Azure Arc Jumpstart op Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) of in een Azure-VM.

Voorlopige en tijdelijke stap alleen voor OpenShift-gebruikers

Implementeer deze stap voordat u naar de volgende stap gaat. Als u PostgreSQL-server wilt implementeren op Red Hat OpenShift in een ander project dan de standaardinstelling, moet u de volgende opdrachten uitvoeren op uw cluster om de beveiligingsbeperkingen bij te werken. Met deze opdracht worden de benodigde bevoegdheden verleend aan de serviceaccounts waarop uw PostgreSQL-server wordt uitgevoerd. De beveiligingscontextbeperking (SCC) arc-data-scc is de beperking die u hebt toegevoegd bij het implementeren van de Azure Arc-gegevenscontroller.

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

Servernaam is de naam van de server die u tijdens de volgende stap gaat maken.

Raadpleeg de OpenShift-documentatie voor meer informatie over SCCs in OpenShift. Ga door naar de volgende stap.

Een PostgreSQL-server met Azure Arc maken

Als u een PostgreSQL-server met Azure Arc wilt maken op uw Arc-gegevenscontroller, gebruikt u de opdracht az postgres server-arc create waaraan u verschillende parameters doorgeeft.

Bekijk de uitvoer van de opdracht voor meer informatie over alle parameters die u tijdens het maken kunt instellen:

az postgres server-arc create --help

De belangrijkste parameters moeten rekening houden met:

  • de naam van de server die u wilt implementeren. Geef aan --name of -n gevolgd door een naam waarvan de lengte niet langer mag zijn dan 11 tekens.

  • De opslagklassen die u wilt gebruiken voor uw server. Het is belangrijk dat u de opslagklasse instelt op het moment dat u een server implementeert, omdat deze instelling niet kan worden gewijzigd nadat u deze hebt geïmplementeerd. U kunt de opslagklassen opgeven die moeten worden gebruikt voor de gegevens, logboeken en de back-ups. Als u geen opslagklassen aangeeft, worden de opslagklassen van de gegevenscontroller standaard gebruikt.

    • Als u de opslagklasse voor de back-ups wilt instellen, geeft u de parameter --storage-class-backups aan, gevolgd door de naam van de opslagklasse. Als u deze parameter uitsluit, worden automatische back-ups uitgeschakeld
    • Als u de opslagklasse voor de gegevens wilt instellen, geeft u de parameter --storage-class-data aan, gevolgd door de naam van de opslagklasse.
    • Als u de opslagklasse voor de logboeken wilt instellen, geeft u de parameter --storage-class-logs aan, gevolgd door de naam van de opslagklasse.

    Belangrijk

    Als u de opslagklasse na de implementatie wilt wijzigen, extraheert u de gegevens, verwijdert u de server, maakt u een nieuwe server en importeert u de gegevens.

Wanneer u de opdracht maken uitvoert, wordt u gevraagd om de gebruikersnaam en het wachtwoord voor de gebruiker met beheerdersrechten in te voeren. U kunt de interactieve prompt overslaan door de AZDATA_USERNAME omgevingsvariabelen en AZDATA_PASSWORD sessies in te stellen voordat u de opdracht maken uitvoert.

Voorbeelden

Voer de volgende opdracht uit om een PostgreSQL-server met de naam postgres01 te implementeren die dezelfde opslagklassen gebruikt als de gegevenscontroller:

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

Notitie

  • Als u de gegevenscontroller hebt geïmplementeerd met behulp van AZDATA_USERNAME en AZDATA_PASSWORD sessieomgevingsvariabelen in dezelfde terminalsessie, worden de waarden hiervoor AZDATA_PASSWORD ook gebruikt om de PostgreSQL-server te implementeren. Als u liever een ander wachtwoord gebruikt, werkt u (1) de waarden voor AZDATA_USERNAME en AZDATA_PASSWORD of (2) verwijdert u de AZDATA_USERNAME omgevingsvariabelen en AZDATA_PASSWORD omgevingsvariabelen of (3) verwijdert u hun waarden om interactief een gebruikersnaam en wachtwoord in te voeren wanneer u een server maakt.
  • Als u een PostgreSQL-server maakt, worden resources niet onmiddellijk in Azure geregistreerd. Als onderdeel van het proces voor het uploaden van resource-inventaris - of gebruiksgegevens naar Azure, worden de resources gemaakt in Azure en kunt u uw resources zien in Azure Portal.

De PostgreSQL-servers weergeven die zijn geïmplementeerd in uw Arc-gegevenscontroller

Voer de volgende opdracht uit om de PostgreSQL-servers weer te geven die zijn geïmplementeerd in uw Arc-gegevenscontroller:

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

Haal de eindpunten op om verbinding te maken met uw PostgreSQL-servers met Azure Arc

Voer de volgende opdracht uit om de eindpunten voor een PostgreSQL-server weer te geven:

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

Voorbeeld:

{
  "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"
}

U kunt het PostgreSQL-exemplaareindpunt gebruiken om verbinding te maken met de PostgreSQL-server vanuit uw favoriete hulpprogramma: Azure Data Studio, pgcli psql, pg Beheer, enzovoort.

Op dit moment gebruikt u de insiders-build van Azure Data Studio.

Speciale opmerking over implementaties van virtuele Azure-machines

Wanneer u een virtuele Azure-machine gebruikt, wordt het openbare IP-adres van het eindpunt niet weergegeven. Gebruik de volgende opdracht om het openbare IP-adres te vinden:

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

Vervolgens kunt u het openbare IP-adres combineren met de poort om uw verbinding te maken.

Mogelijk moet u ook de poort van de PostgreSQL-server beschikbaar maken via de netwerkbeveiligingsgateway (NSG). Als u verkeer via de NSG wilt toestaan, stelt u een regel in. Als u een regel wilt instellen, moet u de naam van uw NSG weten. U bepaalt de NSG met behulp van de onderstaande opdracht:

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

Zodra u de naam van de NSG hebt, kunt u een firewallregel toevoegen met behulp van de volgende opdracht. De voorbeeldwaarden hier maken een NSG-regel voor poort 30655 en maken verbinding vanaf elk bron-IP-adres mogelijk.

Waarschuwing

Het wordt afgeraden om een regel in te stellen om verbinding vanaf een bron-IP-adres toe te staan. U kunt dingen beter vergrendelen door een -source-address-prefixes waarde op te geven die specifiek is voor uw client-IP-adres of een IP-adresbereik dat betrekking heeft op de IP-adressen van uw team of organisatie.

Vervang de waarde van de --destination-port-ranges onderstaande parameter door het poortnummer dat u hebt gekregen uit de az postgres server-arc list bovenstaande opdracht.

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 '*'

Verbinding maken met Azure Data Studio

Open Azure Data Studio en maak verbinding met uw exemplaar met het IP-adres en poortnummer van het externe eindpunt hierboven en het wachtwoord dat u hebt opgegeven op het moment dat u het exemplaar hebt gemaakt. Als PostgreSQL niet beschikbaar is in de vervolgkeuzelijst Verbinding maken iontype, kunt u de PostgreSQL-extensie installeren door te zoeken naar PostgreSQL op het tabblad Extensies.

Notitie

Klik op de knop [Geavanceerd] in het verbindingsvenster om het poortnummer in te voeren.

Als u een Virtuele Azure-machine gebruikt, hebt u het openbare IP-adres nodig, dat toegankelijk is via de volgende opdracht:

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

Verbinding maken met psql

Als u toegang wilt krijgen tot uw PostgreSQL-server, geeft u het externe eindpunt door van de PostgreSQL-server die u hierboven hebt opgehaald:

U kunt nu verbinding maken met psql:

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