ClusterControl 1.6 include una più stretta integrazione con AWS, Azure e Google Cloud, quindi ora è possibile lanciare nuove istanze e distribuire MySQL, MariaDB, MongoDB e PostgreSQL direttamente dall'interfaccia utente di ClusterControl. In questo blog ti mostreremo come distribuire un cluster su Amazon Web Services.
Nota che questa nuova funzionalità richiede due moduli chiamati clustercontrol-cloud e clustercontrol-clud . Il primo è un demone di supporto che estende la capacità CMON della comunicazione cloud, mentre il secondo è un client di gestione file per caricare e scaricare file su istanze cloud. Entrambi i pacchetti sono dipendenze del pacchetto dell'interfaccia utente di clustercontrol, che verrà installato automaticamente se non esistono. Per i dettagli, vedere la pagina della documentazione dei componenti.
Credenziali Cloud
ClusterControl ti consente di archiviare e gestire le tue credenziali cloud in Integrazioni (menu laterale) -> Cloud Provider:
Le piattaforme cloud supportate in questa versione sono Amazon Web Services, Google Cloud Platform e Microsoft Azure. In questa pagina puoi aggiungere nuove credenziali cloud, gestire quelle esistenti e anche connetterti alla tua piattaforma cloud per gestire le risorse.
Le credenziali che sono state impostate qui possono essere utilizzate per:
- Gestisci le risorse cloud
- Distribuisci database nel cloud
- Carica il backup nell'archivio cloud
Di seguito è ciò che vedresti se facessi clic sul pulsante "Gestisci AWS":
Puoi eseguire semplici attività di gestione sulle tue istanze cloud. Puoi anche controllare le impostazioni VPC nella scheda "AWS VPC", come mostrato nella schermata seguente:
Le funzionalità di cui sopra sono utili come riferimento, soprattutto durante la preparazione delle istanze cloud prima di avviare le distribuzioni del database.
Distribuzione database su Cloud
Nelle versioni precedenti di ClusterControl, la distribuzione del database su cloud veniva trattata in modo simile alla distribuzione su host standard, in cui era necessario creare preventivamente le istanze cloud e quindi fornire i dettagli dell'istanza e le credenziali nella procedura guidata "Distribuisci cluster di database". La procedura di distribuzione non era a conoscenza di alcuna funzionalità e flessibilità extra nell'ambiente cloud, come l'allocazione dinamica di IP e nome host, indirizzo IP pubblico NAT, elasticità di archiviazione, configurazione della rete cloud privata virtuale e così via.
Con la versione 1.6 è sufficiente fornire le credenziali cloud, che possono essere gestite tramite l'interfaccia "Cloud Providers" e seguire la procedura guidata di implementazione "Deploy in the Cloud". Dall'interfaccia utente di ClusterControl, fai clic su Distribuisci e ti verranno presentate le seguenti opzioni:
Al momento, i fornitori di servizi cloud supportati sono i tre grandi attori:Amazon Web Service (AWS), Google Cloud e Microsoft Azure. Integreremo più provider nella versione futura.
Nella prima pagina, ti verranno presentate le opzioni Dettagli cluster:
In questa sezione, dovrai selezionare il tipo di cluster supportato, MySQL Galera Cluster, MongoDB Replica Set o PostgreSQL Streaming Replication. Il passaggio successivo consiste nel scegliere il fornitore supportato per il tipo di cluster selezionato. Al momento, sono supportati i seguenti fornitori e versioni:
- Cluster MySQL Galera - Cluster Percona XtraDB 5.7, MariaDB 10.2
- Cluster MongoDB - MongoDB 3.4 di MongoDB, Inc e Percona Server per MongoDB 3.4 di Percona (solo set di repliche).
- Cluster PostgreSQL - PostgreSQL 10.0 (solo replica in streaming).
Nel passaggio successivo, ti verrà presentata la seguente finestra di dialogo:
Qui puoi configurare il tipo di cluster selezionato di conseguenza. Scegli il numero di nodi. Il nome del cluster verrà utilizzato come tag dell'istanza, in modo da poter riconoscere facilmente questa distribuzione nella dashboard del provider di servizi cloud. Nessuno spazio è consentito nel nome del cluster. My.cnf Template è il file di configurazione del modello che ClusterControl utilizzerà per distribuire il cluster. Deve trovarsi in /usr/share/cmon/templates nell'host ClusterControl. Il resto dei campi è abbastanza autoesplicativo.
La finestra di dialogo successiva consiste nel selezionare le credenziali cloud:
Puoi scegliere le credenziali cloud esistenti o crearne una nuova facendo clic sul pulsante "Aggiungi nuova credenziale". Il prossimo passo è scegliere la configurazione della macchina virtuale:
La maggior parte delle impostazioni in questo passaggio vengono popolate dinamicamente dal provider cloud in base alle credenziali scelte. È possibile configurare il sistema operativo, la dimensione dell'istanza, l'impostazione VPC, il tipo e la dimensione dello storage e anche specificare la posizione della chiave SSH sull'host ClusterControl. Puoi anche consentire a ClusterControl di generare una nuova chiave specifica per queste istanze. Quando fai clic sul pulsante "Aggiungi nuovo" accanto a Virtual Private Cloud, ti verrà presentato un modulo per creare un nuovo VPC:
VPC è un'infrastruttura di rete logica che hai all'interno della tua piattaforma cloud. Puoi configurare il tuo VPC modificandone l'intervallo di indirizzi IP, creare sottoreti, configurare tabelle di instradamento, gateway di rete e impostazioni di sicurezza. Si consiglia di distribuire l'infrastruttura del database in questa rete per l'isolamento, la sicurezza e il controllo dell'instradamento.
Quando crei un nuovo VPC, specifica il nome del VPC e il blocco di indirizzi IPv4 con la sottorete. Quindi, scegli se IPv6 deve far parte della rete e dell'opzione di tenancy. Puoi quindi utilizzare questa rete virtuale per la tua infrastruttura di database.
L'ultimo passaggio è il riepilogo della distribuzione:
In questa fase, è necessario scegliere su quale sottorete della rete virtuale prescelta si desidera eseguire il database. Tieni presente che la sottorete scelta DEVE avere l'assegnazione automatica dell'indirizzo IPv4 pubblico abilitato. Puoi anche creare una nuova sottorete in questo VPC facendo clic sul pulsante "Aggiungi nuova sottorete". Verifica se tutto è corretto e premi il pulsante "Distribuisci cluster" per avviare la distribuzione.
Puoi quindi monitorare lo stato di avanzamento facendo clic su Attività -> Lavori -> Crea cluster -> Dettagli completi sul lavoro:
A seconda delle connessioni, il completamento potrebbe richiedere da 10 a 20 minuti. Al termine, vedrai un nuovo cluster di database elencato nel dashboard ClusterControl. Per il cluster di replica in streaming PostgreSQL, potrebbe essere necessario conoscere gli indirizzi IP master e slave una volta completata la distribuzione. Vai semplicemente alla scheda Nodi e vedrai gli indirizzi IP pubblici e privati nell'elenco dei nodi a sinistra:
Il tuo cluster di database è ora distribuito e in esecuzione su AWS.
Al momento, il ridimensionamento funziona in modo simile all'host standard, in cui è necessario creare in anticipo un'istanza cloud manualmente e specificare l'host in ClusterControl -> selezionare il cluster -> Aggiungi nodo.
Sotto il cofano, il processo di distribuzione esegue le seguenti operazioni:
- Crea istanze cloud
- Configura gruppi di sicurezza e reti
- Verifica la connettività SSH da ClusterControl a tutte le istanze create
- Distribuisci database su ogni istanza
- Configura i link di clustering o di replica
- Registra la distribuzione in ClusterControl
Tieni presente che questa funzione è ancora in versione beta. Tuttavia, puoi utilizzare questa funzione per velocizzare il tuo ambiente di sviluppo e test controllando e gestendo il cluster di database in diversi provider di servizi cloud da un'unica interfaccia utente.
Backup del database su Cloud
Questa funzionalità è disponibile da ClusterControl 1.5.0 e ora è stato aggiunto il supporto per Archiviazione cloud di Azure. Ciò significa che ora puoi caricare e scaricare il backup creato su tutti e tre i principali provider di servizi cloud (AWS, GCP e Azure). Il processo di caricamento avviene subito dopo la creazione del backup (se attivi "Carica backup sul cloud") oppure puoi fare clic manualmente sul pulsante dell'icona del cloud nell'elenco dei backup:
È quindi possibile scaricare e ripristinare i backup dal cloud, nel caso in cui si perdesse l'archiviazione di backup locale o se fosse necessario ridurre l'utilizzo dello spazio su disco locale per i backup.
Limiti attuali
Esistono alcune limitazioni note per la funzionalità di distribuzione cloud, come indicato di seguito:
- Al momento non esiste alcuna "contabilità" per le istanze cloud. Dovrai rimuovere manualmente le istanze cloud se rimuovi un cluster di database.
- Non puoi aggiungere o rimuovere automaticamente un nodo con le istanze cloud.
- Non puoi distribuire automaticamente un sistema di bilanciamento del carico con un'istanza cloud.
Abbiamo ampiamente testato la funzionalità in molti ambienti e configurazioni, ma ci sono sempre casi d'angolo che potremmo aver perso. Per ulteriori informazioni, dai un'occhiata al registro delle modifiche.
Buon clustering nel cloud!