Skapa en Azure Arc-aktiverad PostgreSQL-server från CLI

I det här dokumentet beskrivs stegen för att skapa en PostgreSQL-server 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 de verktyg som behövs. Alla distributioner kräver följande verktyg:

  • Azure Data Studio

  • Azure Arc-tillägg för Azure Data Studio

  • Azure CLI (az)

  • arcdata tillägg för Azure CLI

  • kubectl

    Ytterligare klientverktyg beroende på din miljö. En mer omfattande lista finns i Klientverktyg.

Förutom de verktyg som krävs behöver du en Azure Arc-datakontrollant för att slutföra uppgifterna.

Kommentar

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

De senaste uppdateringarna är tillgängliga i viktig information.

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 att skapa:

Om du föredrar att prova saker utan att etablera en fullständig miljö själv kan du snabbt komma igång med Azure Arc Jumpstart på 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-servern till Red Hat OpenShift i ett annat projekt än standard 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 privilegier till de tjänstkonton som ska köra PostgreSQL-servern. SCC(Security Context Constraint) arc-data-scc är den som du lade till när du distribuerade Azure Arc-datakontrollanten.

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

Servernamn är namnet på den server som du skapar under nästa steg.

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

Skapa en Azure Arc-aktiverad PostgreSQL-server

Om du vill skapa en Azure Arc-aktiverad PostgreSQL-server på arc-datastyrenheten använder du kommandot az postgres server-arc create som du skickar flera parametrar till.

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

az postgres server-arc create --help

De viktigaste parametrarna bör överväga är:

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

  • De lagringsklasser som du vill att servern ska använda. Det är viktigt att du ställer in lagringsklassen precis när du distribuerar en server 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 datastyrenhetens lagringsklasser som standard.

    • Om du vill ange lagringsklassen för säkerhetskopiorna anger du parametern --storage-class-backups följt av namnet på lagringsklassen. Exkludera den här parametern inaktiverar automatiserade säkerhetskopieringar
    • Om du vill ange lagringsklassen för data anger du parametern --storage-class-data följt av namnet på lagringsklassen.
    • Om du vill ange lagringsklassen för loggarna anger du parametern --storage-class-logs följt av namnet på lagringsklassen.

    Viktigt!

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

När du kör kommandot create uppmanas du att ange användarnamnet och lösenordet för den administrativa användaren. Du kan hoppa över den interaktiva prompten AZDATA_USERNAME genom att ange miljövariablerna och AZDATA_PASSWORD sessionsmiljön innan du kör kommandot create.

Exempel

Om du vill distribuera en PostgreSQL-server med namnet postgres01 som använder samma lagringsklasser som datakontrollanten kör du följande kommando:

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

Kommentar

  • Om du distribuerade datakontrollanten med hjälp av AZDATA_USERNAME och AZDATA_PASSWORD sessionsmiljövariabler i samma terminalsession används värdena för för AZDATA_PASSWORD för att distribuera PostgreSQL-servern också. Om du föredrar att använda ett annat lösenord kan du antingen (1) uppdatera värdena för AZDATA_USERNAME och AZDATA_PASSWORD eller (2) ta bort AZDATA_USERNAME miljövariablerna och AZDATA_PASSWORD eller (3) ta bort deras värden för att uppmanas att ange ett användarnamn och lösenord interaktivt när du skapar en server.
  • När du skapar en PostgreSQL-server registreras inte resurser omedelbart i Azure. Som en del av processen med att ladda upp resursinventerings- eller användningsdata till Azure skapas resurserna i Azure och du kommer att kunna se dina resurser i Azure-portalen.

Visa en lista över De PostgreSQL-servrar som distribuerats i arc-datastyrenheten

Kör följande kommando för att visa en lista över PostgreSQL-servrarna som distribuerats i arc-datakontrollanten:

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

Hämta slutpunkterna för att ansluta till dina Azure Arc-aktiverade PostgreSQL-servrar

Kör följande kommando för att visa slutpunkterna för en PostgreSQL-server:

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

Till 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-instansens slutpunkt för att ansluta till PostgreSQL-servern från ditt favoritverktyg: Azure Data Studio, pgcli psql, pgAdmin osv.

Använd nu insiderversionen av Azure Data Studio.

Särskild information om distributioner av virtuella Azure-datorer

När du använder en virtuell Azure-dator visar slutpunktens IP-adress inte den offentliga IP-adressen. 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-servern 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 bestämmer 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 valfri käll-IP-adress.

Varning

Vi rekommenderar inte att du ställer in en regel för att tillåta anslutning från någon käll-IP-adress. Du kan låsa saker bättre genom att ange ett -source-address-prefixes värde som är specifikt för klientens IP-adress eller ett IP-adressintervall som täcker teamets eller organisationens IP-adresser.

Ersätt värdet för parametern --destination-port-ranges nedan med det portnummer som du fick från az postgres server-arc 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 lösenordet du angav när du skapade instansen. Om PostgreSQL inte är tillgängligt i listrutan Anslut ionstyp kan du installera PostgreSQL-tillägget genom att söka efter PostgreSQL på fliken tillägg.

Kommentar

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

För att komma åt PostgreSQL-servern skickar du den externa slutpunkten för PostgreSQL-servern som du hämtade ovan:

Nu kan du ansluta antingen psql:

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