Skapa en Azure Arc PostgreSQL Hyperskala-servergrupp från CLI

Det här dokumentet beskriver stegen för att skapa en PostgreSQL Hyperskala-servergrupp på Azure Arc och ansluta till den.

Förutsättningar

Innan du kan fortsätta med uppgifterna i den här artikeln måste du ha:

Anteckning

Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Microsoft Azure förhandsversioner.

De senaste uppdateringarna finns i den viktiga informationen.

För den aktuella uppdateringen stöds distribution av Arc-datastyrenheten i direkt anslutningsläge endast från Azure Portal.

Komma igång

Om du redan är bekant med avsnitten nedan kan du hoppa över det här stycket. Det finns viktiga ämnen som du kanske vill läsa innan du fortsätter med att skapa:

Om du föredrar att prova saker utan att själv etablera en fullständig miljö kan du komma igång snabbt med Azure Arc Jumpstart on Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) eller på en virtuell Azure-dator.

Preliminärt och tillfälligt steg endast för OpenShift-användare

Implementera det här steget innan du går vidare till nästa steg. Om du vill distribuera PostgreSQL Hyperscale-servergruppen till Red Hat OpenShift i ett annat projekt än standardservern måste du köra följande kommandon mot klustret för att uppdatera säkerhetsbegränsningarna. Det här kommandot ger nödvändiga behörigheter till de tjänstkonton som ska köra PostgreSQL Hyperscale-servergruppen. Säkerhetskontextbegränsningen (SCC) arc-data-scc är den som du lade till när du distribuerade Azure Arc datakontrollant.

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

Servergruppsnamn är namnet på den servergrupp som du skapar i nästa steg.

Mer information om SCC:er i OpenShift finns i OpenShift-dokumentationen. Gå vidare till nästa steg.

Skapa en Azure Arc PostgreSQL Hyperskala-servergrupp

Om du Azure Arc en postgreSQL Hyperskala-servergrupp på Arc-datakontrollanten använder du kommandot som du skickar az postgres arc-server create flera parametrar till.

Mer information om alla parametrar som du kan ange när du skapar kommandot finns i kommandots utdata:

az postgres arc-server create --help

De viktigaste parametrarna bör vara:

  • namnet på den servergrupp som du vill distribuera. Ange --name antingen -n eller följt av ett namn vars längd inte får överskrida 11 tecken.

  • den version av PostgreSQL-motorn som du vill distribuera: som standard är den version 12. Om du vill distribuera version 12 kan du antingen utelämna den här parametern eller skicka någon av följande parametrar: --engine-version 12 eller -ev 12 . Om du vill distribuera version 11 anger --engine-version 11 du eller -ev 11 .

  • antalet arbetsnoder som du vill distribuera för att skala ut och potentiellt nå bättre prestanda. Innan du fortsätter här bör du läsa begreppen om Postgres Hyperskala. Om du vill ange antalet arbetsnoder som ska distribueras använder du --workers -w parametern eller följt av ett heltal. Tabellen nedan visar intervallet med värden som stöds och vilken typ av Postgres-distribution du får med dem. Om du till exempel vill distribuera en servergrupp med två arbetsnoder anger --workers 2 du eller -w 2 . Detta skapar tre poddar, en för koordinatornoden/-instansen och två för arbetsnoderna/-instanserna (en för var och en av arbetarna).

Du behöver Formen på den servergrupp som du ska distribuera -w parameter som ska användas Anteckning
En utskalade form av Postgres som uppfyller skalbarhetsbehoven för dina program. Tre eller fler Postgres-instanser, en är koordinator, n arbetar med n >=2. Använd -w n , med n>=2. Citus-tillägget som tillhandahåller hyperskala-funktionen läses in.
En grundläggande form av Postgres-hyperskala där du kan göra funktionell validering av ditt program till en minsta kostnad. Inte giltigt för validering av prestanda och skalbarhet. För att göra det måste du använda den typ av distributioner som beskrivs ovan. En Postgres-instans som är både koordinator och arbetare. Använd -w 0 och läs in Citus-tillägget. Använd följande parametrar om du distribuerar från kommandoraden: -w 0 --extensions Citus. Citus-tillägget som tillhandahåller hyperskala-funktionen läses in.
En enkel instans av Postgres som är redo att skala ut när du behöver den. En Postgres-instans. Den känner ännu inte till semantiken för koordinator och arbetare. Om du vill skala ut efter distributionen redigerar du konfigurationen, ökar antalet arbetsnoder och distribuerar data. Använd -w 0 eller ange inte -w . Citus-tillägget som tillhandahåller hyperskala-funktionen finns i distributionen men har ännu inte lästs in.

När du -w 1 använder fungerar rekommenderar vi inte att du använder det. Den här distributionen ger dig inte mycket värde. Med den får du två instanser av Postgres: en koordinator och en arbetare. Med den här konfigurationen skalar du inte ut data eftersom du distribuerar en enskild arbetsroll. Därför kommer du inte att se en högre nivå av prestanda och skalbarhet. Vi kommer att ta bort stödet för den här distributionen i en framtida version.

  • De lagringsklasser som du vill att servergruppen ska använda. Det är viktigt att du anger lagringsklassen direkt när du distribuerar en servergrupp eftersom den här inställningen inte kan ändras när du har distribuerat. Du kan ange vilka lagringsklasser som ska användas för data, loggar och säkerhetskopior. Om du inte anger lagringsklasser används som standard datastyrenhetens lagringsklasser.

    • Ange lagringsklassen för data genom att ange --storage-class-data parametern -scd eller följt av namnet på lagringsklassen.
    • Ange lagringsklassen för loggarna genom att ange --storage-class-logs parametern -scl eller följt av namnet på lagringsklassen.
    • Stödet för att ange lagringsklasser för säkerhetskopiorna har tillfälligt tagits bort när vi tillfälligt tog bort funktionerna för säkerhetskopiering/återställning när vi slutför design och upplevelser.

    Viktigt

    Om du behöver ändra lagringsklassen efter distributionen extraherar du data, tar bort servergruppen, skapar en ny servergrupp och importerar data.

När du kör kommandot create uppmanas du att ange lösenordet för den administrativa postgres standardanvändaren. Namnet på användaren kan inte ändras i den här förhandsversionen. Du kan hoppa över den interaktiva prompten genom att AZDATA_PASSWORD ange sessionsmiljövariabeln innan du kör kommandot create.

Exempel

Om du vill distribuera en servergrupp med Postgres version 12 med namnet postgres01 med två arbetsnoder som använder samma lagringsklasser som datastyrenheten kör du följande kommando:

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

Anteckning

  • Om du har distribuerat datakontrollanten med hjälp av sessionsmiljövariablerna och i samma terminalsession används värdena för att även distribuera AZDATA_USERNAME AZDATA_PASSWORD AZDATA_PASSWORD PostgreSQL Hyperscale-servergruppen. Om du föredrar att använda ett annat lösenord kan du antingen (1) uppdatera värdet för eller (2) ta bort miljövariabeln eller (3) ta bort dess värde för att uppmanas att ange ett lösenord interaktivt när du skapar en AZDATA_PASSWORD AZDATA_PASSWORD servergrupp.
  • När du skapar en PostgreSQL-hyperskala-servergrupp registreras inte resurserna omedelbart i Azure. Som en del av uppladdningen av resursinventering eller användningsdata till Azure skapas resurserna i Azure och du kan se dina resurser i Azure Portal.

Visa en lista över postgreSQL Hyperskala-servergrupper som distribuerats i arc-datakontrollanten

Om du vill visa de PostgreSQL Hyperscale-servergrupper som distribuerats i Arc-datakontrollanten kör du följande kommando:

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

Hämta slutpunkterna för att ansluta till dina Azure Arc postgreSQL Hyperskala-servergrupper

Om du vill visa slutpunkterna för en PostgreSQL-servergrupp kör du följande kommando:

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

Exempel:

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

Du kan använda PostgreSQL-instansslutpunkten för att ansluta till PostgreSQL Hyperskala-servergruppen från ditt favoritverktyg: Azure Data Studio, pgcli psql, pgAdmin osv. När du gör det ansluter du till koordinatornoden/-instansen, som tar hand om routningen av frågan till lämpliga arbetsnoder/instanser om du har skapat distribuerade tabeller. Mer information finns i begreppen för den Azure Arc PostgreSQL Hyperskala.

För stunden använder du insiders-versionen av Azure Data Studio.

Särskild information om distributioner av virtuella Azure-datorer

När du använder en virtuell Azure-dator visas inte den offentliga IP-adressen för slutpunktens IP-adress. Använd följande kommando för att hitta den offentliga IP-adressen:

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

Du kan sedan kombinera den offentliga IP-adressen med porten för att upprätta anslutningen.

Du kan också behöva exponera porten för PostgreSQL Hyperskala-servergruppen via nätverkssäkerhetsgatewayen (NSG). Om du vill tillåta trafik via (NSG) anger du en regel. Om du vill ange en regel måste du känna till namnet på din NSG. Du fastställer NSG med hjälp av kommandot nedan:

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

När du har namnet på NSG:n kan du lägga till en brandväggsregel med hjälp av följande kommando. Exempelvärdena här skapar en NSG-regel för port 30655 och tillåter anslutning från alla ip-källadresser.

Varning

Vi rekommenderar inte att du anger en regel för att tillåta anslutning från alla IP-källadresser. Du kan låsa saker och ting bättre genom att ange ett värde som är specifikt för din klient-IP-adress eller ett IP-adressintervall som omfattar ditt teams eller -source-address-prefixes organisationens IP-adresser.

Ersätt värdet för --destination-port-ranges parametern nedan med det portnummer som du fick från az postgres arc-server list kommandot ovan.

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

Ansluta med Azure Data Studio

Öppna Azure Data Studio och anslut till din instans med den externa slutpunktens IP-adress och portnummer ovan och det lösenord som du angav när du skapade instansen. Om PostgreSQL inte är tillgängligt i listrutan Anslutningstyp kan du installera PostgreSQL-tillägget genom att söka efter PostgreSQL på fliken Tillägg.

Anteckning

Du måste klicka på knappen [Avancerat] i anslutningspanelen för att ange portnumret.

Kom ihåg att om du använder en virtuell Azure-dator behöver du den offentliga IP-adressen, som är tillgänglig via följande kommando:

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

Anslut med psql

Om du vill komma åt PostgreSQL Hyperscale-servergruppen skickar du den externa slutpunkten för postgreSQL Hyperscale-servergruppen som du hämtade ovan:

Du kan nu ansluta antingen psql:

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

Nästa steg