Creare un server PostgreSQL abilitato per Azure Arc dall'interfaccia della riga di comando
Questo documento descrive i passaggi necessari per la creazione di un server PostgreSQL in Azure Arc e per la connessione al server.
Prerequisiti
Prima di procedere con le attività presentate in questo articolo, è necessario disporre degli strumenti necessari. Per tutte le distribuzioni sono richiesti gli strumenti seguenti:
Azure Data Studio
Estensione Azure Arc per Azure Data Studio
Interfaccia della riga di comando di Azure (
az
)arcdata
estensione per l'interfaccia della riga di comando di Azurekubectl
Strumenti client aggiuntivi in base all'ambiente. Per un elenco più completo, vedere Strumenti client.
Oltre agli strumenti richiesti, il completamento delle attività necessita di un titolare del trattamento dei dati di Azure Arc.
Nota
In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.
Gli aggiornamenti più recenti sono disponibili nelle note sulla versione.
Introduzione
Se si ha già familiarità con gli argomenti riportati di seguito, è possibile ignorare questo paragrafo. Prima di procedere con la creazione, è consigliabile leggere alcuni argomenti importanti:
- Panoramica dei servizi dati abilitati per Azure Arc
- Modalità e requisiti di connettività
- Concetti relativi alla configurazione dell'archiviazione e all'archiviazione Kubernetes
- Modello di risorse Kubernetes
Se si preferisce fare una prova senza effettuare il provisioning di un ambiente completo, è possibile iniziare rapidamente a usare Azure Arc Jumpstart nel servizio Azure Kubernetes (AKS), in AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) o in una macchina virtuale di Azure.
Passaggio preliminare e temporaneo solo per gli utenti di OpenShift
Implementare questo passaggio prima di procedere al passaggio successivo. Per distribuire il server PostgreSQL in Red Hat OpenShift in un progetto diverso da quello predefinito, dovranno essere eseguiti i comandi seguenti nel cluster per aggiornare i vincoli di protezione. Questo comando concede i privilegi necessari agli account del servizio che eseguiranno il server PostgreSQL. Il vincolo di contesto di protezione arc-data-scc è quello che è stato aggiunto al momento della distribuzione del controller dei dati di Azure Arc.
oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>
Server-name è il nome del server che verrà creato durante il passaggio successivo.
Per maggiori dettagli sui vincoli del contesto di protezione di OpenShift, consultare la Documentazione di OpenShift. Passare al passaggio successivo.
Creare un server PostgreSQL abilitato per Azure Arc
Per creare un server PostgreSQL abilitato per Azure Arc nel controller dei dati Arc, verrà utilizzato il comando az postgres server-arc create
al quale verranno trasmessi diversi parametri.
Per informazioni dettagliate su tutti i parametri che è possibile impostare al momento della creazione, rivedere l'output del comando:
az postgres server-arc create --help
I parametri principali che devono essere considerati sono:
nome del server che si desidera distribuire. Indicare
--name
o-n
e in sequenza un nome la cui lunghezza non superi 11 caratteri.Le classi di archiviazione che si desidera vengano utilizzate dal server. È importante impostare la classe di archiviazione direttamente nel momento in cui si distribuisce un server, infatti, questa impostazione non potrà essere modificata dopo la distribuzione. È possibile specificare le classi di archiviazione per i dati, i log e i backup. Per impostazione predefinita, se non si indicano le classi di archiviazione, saranno usate le classi di archiviazione del controller dei dati.
- Per impostare la classe di archiviazione per i backup, indicare il parametro
--storage-class-backups
seguito dal nome della classe di archiviazione. Se si esclude questo parametro, i backup automatizzati saranno disabilitati - Per impostare la classe di archiviazione per i dati, indicare il parametro
--storage-class-data
seguito dal nome della classe di archiviazione. - Per impostare la classe di archiviazione per i log, indicare il parametro
--storage-class-logs
seguito dal nome della classe di archiviazione.
Importante
Se fosse necessario modificare la classe di archiviazione dopo la distribuzione, estrarre i dati, eliminare il server, creare un nuovo server e importare i dati.
- Per impostare la classe di archiviazione per i backup, indicare il parametro
Quando si esegue il comando create, verrà richiesto di immettere il nome utente e la password dell'utente amministratore. È possibile ignorare il prompt interattivo impostando le variabili di ambiente della sessione AZDATA_USERNAME
e AZDATA_PASSWORD
prima di eseguire il comando create.
Esempi
Per distribuire un server PostgreSQL denominato postgres01 che utilizza le stesse classi di archiviazione del controller dei dati, eseguire il comando seguente:
az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s
Nota
- Se il controller dei dati è stato distribuito usando le variabili di ambiente della sessione
AZDATA_USERNAME
eAZDATA_PASSWORD
nella medesima sessione del terminale, i valori perAZDATA_PASSWORD
saranno usati per distribuire anche il server PostgreSQL. Se si preferisce usare un'altra password, è possibile (1) aggiornare i valori diAZDATA_USERNAME
eAZDATA_PASSWORD
, oppure (2) eliminare le variabili di ambienteAZDATA_USERNAME
eAZDATA_PASSWORD
, oppure (3) eliminare i relativi valori che saranno richiesti per immettere un nome utente e una password in modo interattivo al momento della creazione di un server. - La creazione di un server PostgreSQL non comporta la registrazione immediata delle risorse in Azure. Come parte del processo di caricamento dell'inventario risorse o dei dati di utilizzo in Azure, le risorse verranno create in Azure e sarà possibile visualizzarle nel portale di Azure.
Elencare i server PostgreSQL distribuiti nel controller dei dati Arc
Per elencare i server PostgreSQL distribuiti nel controller dei dati Arc, eseguire il comando seguente:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
{
"name": "postgres01",
"state": "Ready"
}
Ottenere gli endpoint per collegarsi ai server PostgreSQL abilitati per Azure Arc
Per visualizzare gli endpoint per un server PostgreSQL, eseguire il comando seguente:
az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s
Ad esempio:
{
"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"
}
È possibile usare l'endpoint dell'Istanza PostgreSQL per collegarsi al server PostgreSQL dallo strumento preferito: Azure Data Studio, pgcli psql, pgAdmin, e così via.
A questo punto, usare la build Insider di Azure Data Studio.
Nota speciale sulle distribuzioni di macchine virtuali di Azure
Se si usa una macchina virtuale di Azure, l'indirizzo IP dell'endpoint non mostrerà l'indirizzo IP pubblico. Per individuare l'indirizzo IP pubblico, usare il comando seguente:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Sarà quindi possibile combinare l'indirizzo IP pubblico con la porta per eseguire la connessione.
Potrebbe anche essere necessario esporre la porta del server PostgreSQL tramite il gateway di sicurezza di rete (NSG). Per consentire il passaggio del traffico attraverso il gateway di sicurezza di rete (NSG), impostare una regola. Per impostare una regola, è necessario conoscere il nome del gateway di sicurezza di rete. Per determinare il gateway di sicurezza di rete, usare il comando seguente:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
Una volta ottenuto il nome NSG, sarà possibile aggiungere una regola del firewall usando il comando seguente. I valori indicati nell'esempio creano una regola del gateway di sicurezza di rete per la porta 30655 e viene consentita la connessione da qualsiasi indirizzo IP di origine.
Avviso
Non è consigliabile impostare una regola per consentire la connessione da qualsiasi indirizzo IP di origine. È possibile applicare un blocco specificando un valore -source-address-prefixes
specifico per l'indirizzo IP del client, oppure un intervallo di indirizzi IP che includa gli indirizzi IP del team o dell'organizzazione.
Sostituire il valore del parametro --destination-port-ranges
riportato di seguito, con il numero di porta ottenuto dal comando az postgres server-arc list
indicato in precedenza.
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 '*'
Stabilire la connessione con Azure Data Studio
Aprire Azure Data Studio e connettersi all'istanza con l'indirizzo IP dell'endpoint esterno, il numero di porta indicato in precedenza e la password specificata al momento della creazione dell'istanza. Se PostgreSQL non è disponibile nell'elenco a discesa Tipo di connessione, è possibile installare l'estensione PostgreSQL eseguendo una ricerca di PostgreSQL nella scheda delle estensioni.
Nota
È necessario fare clic sul pulsante [Advanced] nel pannello di connessione per immettere il numero di porta.
Tenere presente che se si usa una macchina virtuale di Azure, verrà richiesto l'indirizzo IP pubblico, accessibile tramite il comando seguente:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Connettersi con psql
Per accedere al server PostgreSQL, passare l'endpoint esterno del server PostgreSQL recuperato in precedenza:
È ora possibile connettersi a psql:
psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655
Contenuto correlato
Connettersi al server PostgreSQL abilitato per Azure Arc: leggere Ottenere gli endpoint di connessione e le stringhe di connessione
* Nei documenti indicati in precedenza, ignorare le sezioni Accedere al portale di Azure e Creare un Database di Azure per PostgreSQL. Implementare i passaggi rimanenti nella distribuzione di Azure Arc. Tali sezioni sono specifiche per il server del Database di Azure per PostgreSQL offerto come servizio PaaS nel cloud di Azure; tuttavia, le altre parti dei documenti sono direttamente applicabili al server PostgreSQL abilitato per Azure Arc.
Concetti relativi alla configurazione dell'archiviazione e all'archiviazione Kubernetes