Distribuire un database PostgreSQL a disponibilità elevata nel servizio Azure Kubernetes con l'interfaccia della riga di comando di Azure
In questa guida si distribuisce un cluster PostgreSQL a disponibilità elevata che si estende su più zone di disponibilità di Azure nel servizio Azure Kubernetes con l'interfaccia della riga di comando di Azure.
Questo articolo illustra i prerequisiti per la configurazione di un cluster PostgreSQL nel servizio Azure Kubernetes e offre una panoramica del processo di distribuzione completo e dell'architettura.
Importante
Il software open source è citato nella documentazione e negli esempi di Azure Kubernetes. Il software distribuito viene escluso dai contratti di servizio del servizio Azure Kubernetes, dalla garanzia limitata e supporto tecnico di Azure. Quando si usa la tecnologia open source insieme al servizio Azure Kubernetes, consultare le opzioni di supporto disponibili dalle rispettive community e dai gestori di progetti per sviluppare un piano.
Ad esempio, il repository GitHub Ray descrive diverse piattaforme che variano in tempo di risposta, scopo e livello di supporto.
Microsoft si assume la responsabilità di creare i pacchetti open source distribuiti nel servizio Azure Kubernetes. Tale responsabilità include la proprietà completa del processo di compilazione, analisi, firma, convalida e hotfix, oltre al controllo sui file binari nelle immagini del contenitore. Per altre informazioni, vedere Gestione delle vulnerabilità per il servizio Azure Kubernetes e Copertura del supporto del servizio Azure Kubernetes.
Prerequisiti
- Questa guida presuppone una conoscenza di base dei concetti di base di Kubernetes e PostgreSQL.
- Sono necessari i ruoli predefiniti di Azure Proprietario o Amministratore accesso utenti e Collaboratore in una sottoscrizione nell'account Azure.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Sono necessarie anche le risorse seguenti installate:
- Interfaccia della riga di comando di Azure 2.56 o versione successiva.
- Estensione di anteprima del servizio Azure Kubernetes.
- jq, versione 1.5 o successiva.
- kubectl versione 1.21.0 o successiva.
- Helm versione 3.0.0 o successiva.
- apresl versione 3.3.0 o successiva.
- Visual Studio Code o equivalente.
- Krew versione 0.4.4 o successiva.
- kubectl CloudNativePG (CNPG) Plugin.
Processo di distribuzione
Questa guida illustra come eseguire queste operazioni:
- Usare l'interfaccia della riga di comando di Azure per creare un cluster del servizio Azure Kubernetes a più zone.
- Distribuire un cluster e un database PostgreSQL a disponibilità elevata usando l'operatore CNPG.
- Configurare il monitoraggio per PostgreSQL usando Prometheus e Grafana.
- Distribuire un set di dati di esempio in un database PostgreSQL.
- Eseguire gli aggiornamenti del cluster PostgreSQL e del servizio Azure Kubernetes.
- Simulare un'interruzione del cluster e il failover della replica PostgreSQL.
- Eseguire il backup e il ripristino di un database PostgreSQL.
Architettura di distribuzione
Questo diagramma illustra la configurazione di un cluster PostgreSQL con una replica primaria e due repliche in lettura gestite dall'operatore CloudNativePG (CNPG). L'architettura offre un postgreSQL a disponibilità elevata in esecuzione in un cluster del servizio Azure Kubernetes in grado di resistere a un'interruzione della zona eseguendo il failover tra le repliche.
I backup vengono archiviati in Archiviazione BLOB di Azure, offrendo un altro modo per ripristinare il database in caso di problemi con la replica di streaming dalla replica primaria.
Nota
Per le applicazioni che richiedono la separazione dei dati a livello di database, è possibile aggiungere altri database con comandi postInitSQL e simili. Attualmente non è possibile usare l'operatore CNPG per aggiungere altri database in modo dichiarativo. Altre informazioni sull'operatore CNPG.
Passaggi successivi
Collaboratori
Microsoft gestisce questo articolo. I collaboratori seguenti l'hanno originariamente scritto:
- Ken Kilty | Responsabile TPM
- Russell de Pina | Responsabile TPM
- Adrian Joian | Senior Customer Engineer
- Jenny Hayes | Sviluppatore di contenuti senior
- Carol Smith | Sviluppatore di contenuti senior
- Erin Schaffer | Sviluppatore di contenuti 2
- Adam Sharif | Customer Engineer 2
Azure Kubernetes Service