Implementa un sistema MySQL Database ad alta disponibilità in un cluster Oracle Cloud Infrastructure Kubernetes Engine
Oracle MySQL Database Service è un servizio di database completamente gestito distribuito all'interno di Oracle Cloud Infrastructure (OCI) che supporta operatori e sviluppatori che desiderano implementare rapidamente applicazioni sicure e native nel cloud. Puoi utilizzare l'operatore del servizio OCI per Kubernetes (OSOK) per eseguire il provisioning e la gestione dei sistemi MySQL Database per le applicazioni distribuite in un sistema MySQL Database ad alta disponibilità in un cluster Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE).
L'utilizzo di OSOK semplifica la gestione dei sistemi MySQL Database per gli amministratori OKE e consente di distribuire le istanze di MySQL Database System insieme alle applicazioni utilizzando lo strumento di gestione dei pacchetti Kubernetes, Helm.
Architettura
Questa architettura di riferimento mostra un'applicazione distribuita in un cluster OKE che utilizza un sistema MySQL Database ad alta disponibilità per il proprio database. MySQL Database System viene distribuito e gestito interamente dall'interno del cluster OKE con OSOK.
OSOK consente di gestire il sistema MySQL Database come qualsiasi altra risorsa Kubernetes utilizzando l'interfaccia CLI Kubernetes standard - kubectl, modellando il sistema MySQL Database come definizione delle risorse personalizzate (CRD) e applicando tali definizioni al cluster OKE.
MySQL Database System può essere distribuito come sistema standalone o con High Availability (HA). Un sistema MySQL Database abilitato per HA contiene tre istanze distribuite in domini di disponibilità o domini di errore diversi. L'applicazione si connette a un singolo endpoint per la lettura e la scrittura nel database. In caso di errore, il sistema di database eseguirà automaticamente il failover su un'istanza secondaria senza riconfigurare l'applicazione.
Il seguente diagramma illustra questa architettura di riferimento.

Descrizione dell'immagine oci-mysql-oke-ha-arch.png
oci-mysql-oke-ha-arch-oracle.zip
L'architettura presenta i seguenti componenti:
- Area
Un'area geografica Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center standalone e indipendenti all'interno di un'area geografica. Le risorse fisiche in ciascun dominio di disponibilità sono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento, o la rete interna del dominio di disponibilità. Pertanto, un errore in un dominio di disponibilità non dovrebbe influire sugli altri domini di disponibilità nell'area.
- Domini di errore
Un dominio di errore consiste in un gruppo di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci le risorse su più domini di errore, le tue applicazioni possono tollerare errori fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.
- Rete cloud virtuale (VCN) e subnet
Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, le reti VCN consentono di controllare l'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi segmentare una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Motore Kubernetes OCI
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine o OKE) è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni containerizzate nel cloud. Puoi specificare le risorse di computazione richieste dalle tue applicazioni e Kubernetes Engine le esegue sul Oracle Cloud Infrastructure in una tenancy esistente. OKE utilizza Kubernetes per automatizzare l'implementazione, la scalabilità e la gestione di applicazioni containerizzate tra cluster di host.
- Oracle MySQL Database Service
Oracle MySQL Database Service è un servizio di database Oracle Cloud Infrastructure (OCI) completamente gestito che consente agli sviluppatori di sviluppare e distribuire rapidamente applicazioni cloud native sicure. Ottimizzato ed esclusivamente disponibile in OCI, Oracle MySQL Database Service è stato creato, gestito e supportato al 100% dai team di progettazione OCI e MySQL.
Oracle MySQL Database Service dispone di un motore di analitica integrato e ad alte prestazioni (HeatWave) per eseguire sofisticate analisi in tempo reale direttamente su un database MySQL operativo.
- Gateway NAT (Network Address Translation)
Un gateway NAT consente alle risorse private in una VCN di accedere agli host su Internet, senza esporre tali risorse alle connessioni Internet in entrata.
- Gateway del servizio
Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viene instradato sul fabric di rete Oracle e non attraversa Internet.
- Registro
Oracle Cloud Infrastructure Registry è un registro gestito da Oracle e che ti consente di semplificare il flusso di lavoro da sviluppo a produzione. Registry semplifica la memorizzazione, la condivisione e la gestione degli artifact di sviluppo, ad esempio le immagini Docker. L'architettura altamente disponibile e scalabile di Oracle Cloud Infrastructure ti assicura di poter distribuire e gestire le tue applicazioni in modo affidabile.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un unico punto di accesso a più server nel back-end.
- Tabella di instradamento
Le tabelle di instradamento virtuali contengono regole per instradare il traffico dalle subnet alle destinazioni esterne a una VCN, in genere attraverso i gateway.
- Lista di sicurezza
Per ogni subnet, puoi creare regole di sicurezza che specificano l'origine, la destinazione e il tipo di traffico che devono essere consentiti all'interno e all'esterno della subnet.
Suggerimenti
- VCN
Quando crei una VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Utilizzare i blocchi CIDR all'interno dello spazio di indirizzi IP privati standard.
Selezionare i blocchi CIDR che non si sovrappongono a qualsiasi altra rete (in Oracle Cloud Infrastructure, nel data center on premise o in un altro provider cloud) a cui si intende impostare connessioni private.
Dopo aver creato una VCN, puoi modificarne, aggiungerne e rimuoverne i blocchi CIDR.
Quando si progettano le subnet, considerare il flusso di traffico e i requisiti di sicurezza. Collega tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.
- Larghezza di banda del load balancer
Durante la creazione del load balancer, puoi selezionare una forma predefinita che fornisca una larghezza di banda fissa oppure specificare una forma personalizzata (flessibile) in cui impostare un intervallo di larghezza di banda e consentire al servizio di ridimensionare automaticamente la larghezza di banda in base ai pattern di traffico. Con entrambi gli approcci, puoi modificare la forma in qualsiasi momento dopo aver creato il load balancer.
- Liste di sicurezza
Utilizza le liste di sicurezza per definire regole di entrata e uscita che si applicano all'intera subnet.
- Oracle MySQL Database Service
In questa architettura, l'applicazione memorizza i dati relazionali in Oracle MySQL Database Service. Si consiglia di utilizzare la versione più recente.
Considerazioni
Quando si distribuisce un'applicazione in Oracle Cloud, prendere in considerazione queste opzioni per la disponibilità.
- Disponibilità dell'applicazione
L'applicazione viene distribuita con più pod nella distribuzione per fornire alta disponibilità.
- Disponibilità e scalabilità del servizio di database SQL personale
Il servizio MySQL Database visualizzato nell'architettura ad alta disponibilità utilizza l'opzione MySQL High Availability integrata, che crea tre istanze e le posiziona in domini di errore diversi.
- Sicurezza
Utilizza criteri che limitano chi può accedere alle risorse OCI disponibili. OKE è integrato con OCI Identity and Access Management (IAM). IAM fornisce un'autenticazione semplice con la funzionalità di identità OCI nativa.
Distribuire
Questa architettura di riferimento può essere distribuita e gestita dal cluster OKE senza utilizzare la console o l'interfaccia CLI OCI e automatizzata con un grafico Helm. Il grafico Helm di esempio per questa architettura di riferimento semplifica la creazione e la gestione di un sistema MySQL Database da un cluster Kubernetes distribuito in OCI. È possibile scaricare il codice da GitHub e personalizzarlo in base alle proprie esigenze specifiche.
- Passare a GitHub.
- Duplica o scarica il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README
.
Visualizza altro
Esaminare le risorse aggiuntive riportate di seguito per ulteriori informazioni sulle funzioni di questa architettura.
- Framework delle best practice per Oracle Cloud Infrastructure
- Distribuire applicazioni cloud native che utilizzano MySQL nell'infrastruttura Oracle Cloud
- Scopri come distribuire MySQL Database Service in Oracle Cloud
- Operatore del servizio OCI per Kubernetes
- Panoramica di OCI Kubernetes Engine
- Blog di Oracle MySQL