Een postgreSQL Hyperscale-servergroep Azure Arc postgreSQL hyperscale maken vanuit CLI

In dit document worden de stappen beschreven voor het maken van een PostgreSQL Hyperscale-servergroep op Azure Arc om er verbinding mee te maken.

Vereisten

Voordat u verder kunt gaan met de taken in dit artikel, hebt u het volgende nodig:

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 release-opmerkingen.

Voor de huidige update wordt de implementatie van de Arc-gegevenscontroller in de modus voor directe connectiviteit alleen ondersteund vanuit Azure Portal.

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 liever dingen probeert zonder zelf een volledige omgeving in terichten, kunt u snel aan de slag met Azure Arc Jumpstart on Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) of in een Azure-VM.

Voorlopige en tijdelijke stap voor alleen OpenShift-gebruikers

Implementeert deze stap voordat u verder gaat met de volgende stap. Als u postgreSQL Hyperscale-servergroep wilt implementeren op Red Hat OpenShift in een ander project dan de standaardinstelling, moet u de volgende opdrachten uitvoeren voor uw cluster om de beveiligingsbeperkingen bij te werken. Met deze opdracht worden de benodigde bevoegdheden verleend aan de serviceaccounts die uw PostgreSQL Hyperscale-servergroep uitvoeren. De beveiligingscontextbeperking (SCC) arc-data-scc is de beperking die u hebt toegevoegd toen u de Azure Arc geïmplementeerd.

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

Servergroepnaam is de naam van de servergroep die u tijdens de volgende stap maakt.

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

Een PostgreSQL Hyperscale-servergroep met Azure Arc-functie maken

Als u Azure Arc PostgreSQL Hyperscale-servergroep wilt maken op uw Arc-gegevenscontroller, gebruikt u de opdracht waaraan u az postgres arc-server create verschillende parameters door geeft.

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

az postgres arc-server create --help

De belangrijkste parameters die u moet overwegen, zijn:

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

  • de versie van de PostgreSQL-engine die u wilt implementeren: standaard is dit versie 12. Als u versie 12 wilt implementeren, kunt u deze parameter weglaten of een van de volgende parameters doorgeven: --engine-version 12 of -ev 12 . Als u versie 11 wilt implementeren, geeft u --engine-version 11 of -ev 11 aan.

  • het aantal werkknooppunten dat u wilt implementeren om uit te schalen en mogelijk betere prestaties te bereiken. Lees de concepten over Postgres Hyperscale voordat u verdergaat. Gebruik de parameter of gevolgd door een geheel getal om het aantal werkknooppunten aan te geven dat moet --workers -w worden geïmplementeerd. In de onderstaande tabel ziet u het bereik van ondersteunde waarden en welke vorm van Postgres-implementatie u bij deze waarden krijgt. Als u bijvoorbeeld een servergroep met twee werkknooppunten wilt implementeren, geeft u --workers 2 of -w 2 aan. Hiermee maakt u drie pods, één voor het coördinatorknooppunt/-exemplaar en twee voor de werkknooppunten/-instanties (één voor elk van de werknemers).

U hebt nodig Vorm van de servergroep die u wilt implementeren -w parameter die moet worden gebruikt Notitie
Een uitgeschaalde vorm van Postgres om te voldoen aan de schaalbaarheidsbehoeften van uw toepassingen. Drie of meer Postgres-instanties, één is coördinator, n zijn werksters met n >=2. Gebruik -w n , met n>=2. De Citus-extensie die de Hyperscale-mogelijkheid biedt, wordt geladen.
Een eenvoudige vorm van Postgres Hyperscale voor het uitvoeren van functionele validatie van uw toepassing tegen minimale kosten. Niet geldig voor validatie van prestaties en schaalbaarheid. Voor deze implementatie moet u het type implementaties gebruiken dat hierboven wordt beschreven. Eén Postgres-exemplaar dat zowel coördinator als werker is. Gebruik -w 0 en laad de Citus-extensie. Gebruik de volgende parameters als u implementeert vanaf de opdrachtregel: -w 0 --extensions Citus. De Citus-extensie die de Hyperscale-mogelijkheid biedt, wordt geladen.
Een eenvoudig exemplaar van Postgres dat klaar is om uit te schalen wanneer u dat nodig hebt. Eén Postgres-exemplaar. Het is nog niet op de hoogte van de semantiek voor coördinator en werker. Als u de schaal na de implementatie wilt aanpassen, bewerkt u de configuratie, verhoogt u het aantal werkknooppunten en distribueert u de gegevens. Gebruik -w 0 of geef niet -w op. De Citus-extensie die de Hyperscale-mogelijkheid biedt, is aanwezig in uw implementatie, maar is nog niet geladen.

Tijdens het -w 1 gebruik van werkt, raden we u niet aan deze te gebruiken. Deze implementatie biedt u niet veel waarde. Met deze functie krijgt u twee exemplaren van Postgres: één coördinator en één werknemer. Met deze instelling schaalt u de gegevens niet uit omdat u één werkrol implementeert. Als zodanig ziet u geen verhoogd prestatie- en schaalbaarheidsniveau. De ondersteuning van deze implementatie wordt in een toekomstige release verwijderd.

  • De opslagklassen die de servergroep moet gebruiken. Het is belangrijk dat u de opslagklasse in stelt op het moment dat u een servergroep 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 back-ups. Als u geen opslagklassen aangeeft, worden standaard de opslagklassen van de gegevenscontroller gebruikt.

    • Als u de opslagklasse voor de gegevens wilt instellen, geeft u de parameter --storage-class-data of gevolgd door de naam van de -scd opslagklasse aan.
    • Als u de opslagklasse voor de logboeken wilt instellen, geeft u de parameter --storage-class-logs of gevolgd door de naam van de -scl opslagklasse aan.
    • De ondersteuning voor het instellen van opslagklassen voor de back-ups is tijdelijk verwijderd omdat we de functies voor back-up/herstel tijdelijk hebben verwijderd bij het maken van ontwerpen en ervaringen.

    Belangrijk

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

Wanneer u de opdracht create uitvoert, wordt u gevraagd om het wachtwoord van de standaardgebruiker met postgres beheerdersrechten in te voeren. De naam van die gebruiker kan niet worden gewijzigd in deze preview. U kunt de interactieve prompt overslaan door de AZDATA_PASSWORD omgevingsvariabele voor de sessie in te stellen voordat u de opdracht create gaat uitvoeren.

Voorbeelden

Voer de volgende opdracht uit om een servergroep postgres versie 12 postgres01 te implementeren met twee werkknooppunten die dezelfde opslagklassen gebruiken als de gegevenscontroller:

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

Notitie

  • Als u de gegevenscontroller hebt geïmplementeerd met behulp van omgevingsvariabelen en sessies in dezelfde terminalsessie, worden de waarden voor ook gebruikt om de AZDATA_USERNAME AZDATA_PASSWORD AZDATA_PASSWORD PostgreSQL Hyperscale-servergroep te implementeren. Als u liever een ander wachtwoord gebruikt, moet u (1) de waarde voor bijwerken of (2) de omgevingsvariabele verwijderen of (3) de waarde ervan verwijderen om interactief een wachtwoord in te voeren wanneer u een AZDATA_PASSWORD AZDATA_PASSWORD servergroep maakt.
  • Als u een PostgreSQL Hyperscale-servergroep maakt, worden resources niet onmiddellijk geregistreerd in Azure. Als onderdeel van het uploaden van resource-inventaris- of gebruiksgegevens naar Azure, worden de resources gemaakt in Azure en kunt u uw resources in de Azure Portal.

De PostgreSQL Hyperscale-servergroepen opneren die zijn geïmplementeerd in uw Arc-gegevenscontroller

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

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

De eindpunten om verbinding te maken met uw postgreSQL Hyperscale-servergroepen Azure Arc postgreSQL hyperscale

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

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

Bijvoorbeeld:

{
  "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 eindpunt van het PostgreSQL-exemplaar gebruiken om vanuit uw favoriete hulpprogramma verbinding te maken met de PostgreSQL Hyperscale-servergroep: Azure Data Studio, pgcli psql, pgAdmin, enzovoort. Wanneer u dit doet, maakt u verbinding met het coördinatorknooppunt/exemplaar, dat zorgt voor het routeren van de query naar de juiste werkknooppunten/-instanties als u gedistribueerde tabellen hebt gemaakt. Lees de concepten van postgreSQL Hyperscale Azure Arc postgreSQL voor meer informatie.

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 niet op het IP-adres van het eindpunt weer geven. 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 verbinding te maken.

Mogelijk moet u ook de poort van de PostgreSQL Hyperscale-servergroep via de netwerkbeveiligingsgateway (NSG) blootstellen. Stel een regel in om verkeer via de (NSG) toe te staan. Als u een regel wilt instellen, moet u de naam van uw NSG kennen. 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. Met de voorbeeldwaarden hier maakt u een NSG-regel voor poort 30655 en staat u verbinding toe vanaf elk bron-IP-adres.

Waarschuwing

U wordt aangeraden geen regel in te stellen om verbinding vanaf een bron-IP-adres toe te staan. U kunt dingen beter vergrendelen door een 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 -source-address-prefixes organisatie.

Vervang de waarde van de --destination-port-ranges onderstaande parameter door het poortnummer dat u hebt via de az postgres arc-server 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 bovenstaande IP-adres en poortnummer van het externe eindpunt en het wachtwoord dat u hebt opgegeven op het moment dat u het exemplaar hebt gemaakt. Als PostgreSQL niet beschikbaar is in de vervolgkeuze lijst Verbindingstype, kunt u de PostgreSQL-extensie installeren door te zoeken naar PostgreSQL op het tabblad Extensies.

Notitie

U moet op de knop [Geavanceerd] in het verbindingsvenster klikken om het poortnummer in te voeren.

Als u een azure-VM 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 Hyperscale-servergroep, geeft u het externe eindpunt door van de PostgreSQL Hyperscale-servergroep die u hierboven hebt opgehaald:

U kunt nu verbinding maken met psql:

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

Volgende stappen