Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Automatizza i piani di switchover e failover per OCI Kubernetes Engine (Stateful) con OCI Full Stack Disaster Recovery
Introduzione
Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orchestra la transizione di computazione, database e applicazioni tra le region Oracle Cloud Infrastructure (OCI) di tutto il mondo con un solo clic. I clienti possono automatizzare i passaggi necessari per recuperare uno o più sistemi aziendali senza riprogettare o riprogettare l'infrastruttura, i database o le applicazioni esistenti e senza dover ricorrere a server di gestione o conversione specializzati.
Oracle Cloud Infrastructure Kubernetes Engine (OKE) è un servizio Kubernetes gestito che semplifica lo sviluppo, l'implementazione e il funzionamento di carichi di lavoro containerizzati su larga scala. OKE ti consente di creare, gestire e utilizzare rapidamente i cluster Kubernetes che sfruttano i servizi di computazione, rete e storage OCI di base.
Architettura distribuzione
Obiettivi
In questa esercitazione verranno trattati i task riportati di seguito.
- Task 1: creare un gruppo dinamico e criteri per OKE e OCI Full Stack Disaster Recovery
- Task 2: aggiungere il cluster OKE primario ai gruppi di protezione DR principali
- Task 3: aggiungere gruppi di volumi ai gruppi di protezione DR principali
- Task 4: aggiungere un cluster OKE in standby ai gruppi di protezione DR in standby
- Task 5: Crea un piano di espansione iniziale
- Task 6: Esegui il piano di espansione iniziale
- Task 7: controllare l'applicazione in esecuzione sul cluster OKE in standby
- Task 8: Crea un piano di espansione di arresto
- Task 9: Esegui il piano di stop drill
- Task 10: controllare il cleanup sul cluster OKE in standby
Nota: in questa esercitazione l'area primaria è Francoforte e la standby region è Amsterdam.
Prerequisiti
-
Questa esercitazione presuppone che i gruppi di protezione DR (DRPG) esistano già e che siano presenti piani DR in entrambe le aree.
-
Questa esercitazione si basa sul presupposto che il lettore disponga dei privilegi di amministratore e che i criteri Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) necessari per OCI Full Stack DR siano già in vigore. Per ulteriori informazioni, vedere Configurazione dei criteri IAM (Identity and Access Management) per l'utilizzo di Full Stack DR e Criteri per Full Stack Disaster Recovery.
-
Questa esercitazione presuppone che il lettore disponga di un cluster OKE distribuito nell'area primaria e di un cluster peer nella standby region. Per ulteriori informazioni, vedere Creazione di un cluster.
-
Questa esercitazione presuppone che il lettore abbia disconnesso (mosso) l'applicazione MuShop distribuita nel cluster OKE primario. Per ulteriori informazioni, vedere Distribuisci MuShop.
-
I volumi a blocchi generati dal cluster OKE sono già stati aggiunti al gruppo di volumi (
vg_oke_mushop
). È necessario creare un gruppo di volumi con replicaiton tra più aree. Per ulteriori informazioni, vedere Crea gruppi di volumi. -
Crea un bucket di storage degli oggetti OCI nell'area primaria e nella standby region per memorizzare i backup OKE. Per ulteriori informazioni, vedere Storage degli oggetti.
Task 1: creare un gruppo dinamico e criteri per OKE e OCI Full Stack DR
Questi criteri consentono al servizio DR OCI Full Stack di accedere al bucket di storage degli oggetti OCI per caricare il backup della configurazione. Il criterio per l'accesso al bucket dello storage degli oggetti OCI dal cluster OKE dipende dal tipo di cluster.
-
Creare un gruppo dinamico e criteri per il pool di nodi gestiti.
-
Creare un gruppo dinamico denominato
<cluster1_dg>
.All {instance.compartment.id = '<compartment_ocid>'}
-
Creare i criteri riportati di seguito.
Allow dynamic-group cluster1_dg to manage object-family in compartment <compartment> Allow dynamic-group cluster1_dg to manage cluster-family in compartment <compartment>
-
-
Creare i criteri riportati di seguito per il pool di nodi virtuali.
Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<Cluster_OCID>'} Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<Cluster_OCID>'}
Questi criteri offrono pod in esecuzione nello spazio di nomi brie con l'account di servizio
brie-reader
obrie-creator
per leggere e scrivere nel bucket di storage degli oggetti OCI. -
Creare un gruppo dinamico e criteri per l'istanza del contenitore. Questi criteri consentono alle istanze dei container runtime create dal servizio DR OCI Full Stack di accedere al cluster OKE e al bucket di storage degli oggetti OCI.
-
Creare un gruppo dinamico denominato
<bastion1_dg>
.All {resource.type='computecontainerinstance'}
-
Creare i criteri riportati di seguito.
Allow dynamic-group bastion1_dg to manage object-family in compartment <compartment> Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>
-
-
Creare un gruppo dinamico e un criterio per l'host di accesso.
Se si utilizza l'host jump, questo criterio consente a OCI Full Stack DR di accedere al cluster OKE e ai bucket di storage degli oggetti OCI. Se l'host e il cluster jump si trovano nello stesso compartimento, puoi evitare di eseguire passaggi per creare nuovi gruppi dinamici e criteri per fornire l'accesso al bucket di storage degli oggetti OCI.
-
Creare un gruppo dinamico denominato
<bastion1_dg>
.All {instance.compartment.id = '<compartment_ocid>'}
-
Creare il criterio seguente.
Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>Allow dynamic-group bastion1_dg to manage cluster in compartment <compartment>
-
Nota: se non si include
identity_domain_name
prima didynamic-group
, l'istruzione criterio viene valutata come se il gruppo appartenesse al dominio di Identity predefinito. Per ulteriori informazioni, vedere Funzionamento dei criteri.
Task 2: aggiungere il cluster OKE principale ai gruppi di protezione DR principali
-
Nel DRPG principale (
DRPG_MUSHOP_FRA
), selezionare Membri e fare clic su Aggiungi membro. -
Selezionare Cluster OKE come Tipo di risorsa.
-
Immettere le informazioni richieste riportate di seguito.
- Cluster OKE: immettere un cluster OKE.
- Backup: immettere le informazioni di backup.
- Bucket di backup: selezionare il bucket.
- Selezionare Specificare la pianificazione del backup.
- Tipo di piano: inserire il tipo di piano.
- Ora di inizio: immettere l'ora di inizio in UTC.
- Intervallo: immettere l'intervallo in giorni.
- Numero massimo di backup da conservare (facoltativo): immettere il numero massimo di backup.
- Selezionare Replica immagine:
- Segreto replica immagine (facoltativo): selezionare un'immagine.
- Spazio di nomi (facoltativo): immettere lo spazio di nomi.
- Cluster OKE peer: selezionare il cluster OKE peer.
-
Selezionare Capisco di dover aggiornare e verificare tutti i piani esistenti e fare clic su Aggiungi.
Task 3: aggiungere gruppi di volumi ai gruppi di protezione DR principali
-
Nel DRPG principale (
DRPG_MUSHOP_FRA
), selezionare Membri e fare clic su Aggiungi membro. -
Selezionare Gruppo di volumi come Tipo di risorsa.
-
Immettere le informazioni richieste riportate di seguito.
- Gruppo di volumi: selezionare il gruppo di volumi.
-
Selezionare Capisco di dover aggiornare e verificare tutti i piani esistenti e fare clic su Aggiungi.
Task 4: aggiungere un cluster OKE in standby ai gruppi di protezione DR in standby
-
Nel DRPG in standby (
DRPG_MUSHOP_AMS
), selezionare Membri e fare clic su Aggiungi membro. -
Selezionare Cluster OKE come Tipo di risorsa.
-
Immettere le informazioni richieste riportate di seguito.
- Cluster OKE: immettere un cluster OKE.
- Backup: immettere le informazioni di backup.
- Bucket di backup: selezionare il bucket.
- Cluster OKE peer: selezionare il cluster OKE peer.
-
Selezionare Capisco di dover aggiornare e verificare tutti i piani esistenti e fare clic su Aggiungi.
Task 5: Crea un piano di espansione iniziale
-
Nel DRPG in standby (
DRPG_MUSHOP_AMS
), selezionare Piani e fare clic su Crea piano. -
Immettere un nome per il piano, selezionare Avvia drilling come Tipo di piano e fare clic su Crea.
Dopo alcuni minuti, il piano mostrerà lo stato Attivo.
-
Selezionare il piano creato per visualizzarne il contenuto.
Task 6: Esegui il piano di espansione iniziale
-
Selezionare il piano creato nel task 5.
-
Selezionare Abilita controlli preliminari e fare clic su Esegui piano.
Dopo alcuni minuti, in tutti i gruppi verrà visualizzato lo stato Operazione riuscita.
Task 7: controllare l'applicazione in esecuzione sul cluster OKE in standby
Connettersi al cluster OKE in standby e verificare se l'applicazione è in esecuzione. Per l'applicazione MuShop eseguire il comando seguente.
kubectel get all -n mushop
Task 8: Crea un piano di interruzione espansione
-
Nel DRPG in standby (
DRPG_MUSHOP_AMS
), selezionare Piani e fare clic su Crea piano. -
Immettere un nome per il piano, selezionare Avvia drilling come Tipo di piano e fare clic su Crea.
Dopo alcuni minuti, il piano mostrerà lo stato Attivo.
Task 9: Esegui il piano di interruzione drilling
-
Selezionare il piano creato nel task 8.
-
Selezionare Abilita controlli preliminari e fare clic su Esegui piano.
Dopo alcuni minuti, tutti i gruppi visualizzeranno lo stato Succuss.
Task 10: Controlla cleanup su cluster OKE in standby
Connettersi al cluster OKE in standby e controllare la lista degli spazi di nomi utilizzando il comando seguente.
kubectl get namespaces
Passi successivi
Dopo aver creato ed eseguito i piani di drilling, ora è il momento di creare un piano di switchover e un piano di failover.
Esistono due best practice da integrare nelle normali operazioni quotidiane per garantire la disponibilità dei piani di DR.
- Esecuzione periodica regolare dei controlli preliminari.
- Esecuzione periodica regolare dei drilling DR.
È possibile pianificare controlli preliminari settimanali di tutti i piani DR nel gruppo di protezione DR in standby. I controlli preliminari possono essere eseguiti in qualsiasi momento e non hanno alcun impatto sui carichi di lavoro di produzione. Ciò contribuirà a garantire l'integrità dei piani DR, recuperando le risorse membro mancanti, le reti mancanti, l'incapacità di trovare gli script previsti richiamati dai passi definiti dall'utente e così via.
Un altro modo molto importante per convalidare la prontezza del ripristino di emergenza è pianificare esercitazioni DR periodiche una volta al mese o al trimestre. I drill DR non hanno alcun impatto sui carichi di lavoro di produzione, ma ti offrono la possibilità di convalidare il recupero dei database di computazione, storage, Oracle e dei set backend per i load balancer nella standby region con un semplice clic. Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.
Collegamenti correlati
-
Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery
-
Preparazione di Kubernetes Engine (OKE) per il disaster recovery
-
Aggiungere un cluster OKE a un gruppo di protezione Disaster Recovery
Conferme
- Autore - Raphael Teixeira (membro principale dello staff tecnico per la progettazione DR Full Stack)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Automate Switchover and Failover Plans for OCI Kubernetes Engine (Stateful) with OCI Full Stack Disaster Recovery
G26604-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.