Distribuzione OKE verde-blu
Crea pipeline di distribuzione utilizzando la strategia di rilascio Blue-Green per Kubernetes Engine (OKE)
Prerequisiti
I prerequisiti sono i seguenti:
- Disporre di una pipeline di distribuzione, di un ambiente cluster Kubernetes da distribuire e di artifact. Gli artifact possono essere definiti in linea o posizionati nel registro artifact.
- Poiché il cluster OKE non dispone di un controller in entrata per impostazione predefinita, è necessario impostare un controller in entrata NGINX per la strategia di distribuzione Blue-Green. Il nome in entrata NGINX deve essere definito nel file manifesto Kubernetes. Un controller in entrata è un'applicazione Kubernetes che instrada il traffico in base alla specifica di entrata. Il controller di entrata NGINX monitora le risorse in entrata per il bilanciamento del carico. Il traffico viene spostato dall'area intermedia all'ambiente di produzione aggiornando la risorsa in entrata. Per informazioni, vedere Impostazione di un controller in entrata in un cluster.
- Per definire gli ambienti di distribuzione blu e verde, è necessario creare due spazi di nomi nel cluster Kubernetes. Non è necessario specificare gli spazi di nomi nei file manifesto Kubernetes, poiché vengono forniti nella console. Per ulteriori informazioni sugli spazi di nomi, consultare la documentazione di Kubernetes.
Per eseguire lo scale down dello spazio di nomi inattivo o in standby dopo la distribuzione, è necessario mantenere almeno una replica per evitare problemi.
Per creare gruppi dinamici e criteri per le pipeline di distribuzione, vedere Criteri di pipeline di distribuzione. Per ulteriori dettagli, consulta DevOps Criteri IAM.
Per accedere a DevOps utilizzando la console di Oracle Cloud, l'API REST e l'interfaccia CLI, vedere Accesso a DevOps.
- Aprire il menu di navigazione e fare clic su Servizi per sviluppatori. In DevOps fare clic su Progetti.
- Selezionare un progetto e una pipeline di distribuzione.
- Per aggiungere una fase alla pipeline, fare clic sull'icona + e selezionare Aggiungi fase.
- Per il tipo di fase, selezionare Strategia blu/verde, quindi fare clic su Avanti.
- Selezionare OKE per il tipo di distribuzione.
- Immettere un nome e una descrizione per lo stadio. L'aggiunta di una descrizione è facoltativa.
- Per Ambiente, selezionare un ambiente cluster esistente.
- Immettere gli spazi di nomi esistenti per Spazio di nomi A e Spazio di nomi B associati all'ambiente OKE selezionato. Ad esempio,
blue-env, green-env
.Gli spazi dei nomi vengono utilizzati per definire gli ambienti di distribuzione blu e verde nel cluster OKE.
- Fare clic su Seleziona artifact e selezionare una o più risorse artifact dal progetto DevOps.
Il servizio DevOps esegue un'applicazione lato server Kubernetes degli artifact del manifest Kubernetes nell'ordine in cui vengono visualizzati nella console. È inoltre possibile rimuovere gli artifact per selezionarne un altro o riordinare la lista di artifact. La rimozione di un artifact nella fase della pipeline non comporta l'eliminazione della risorsa artifact dal progetto. Per ulteriori informazioni sull'applicazione lato server Kubernetes, vedere Applicazione lato server.
- Immettere il nome in entrata GNINX. Ad esempio,
ingress-nginx
.Questo è il nome della risorsa di entrata dell'applicazione. Il servizio DevOps modifica l'annotazione su questa risorsa in entrata per eseguire la strategia di distribuzione. Il nome in entrata NGINX deve essere definito nel file manifesto Kubernetes.
- Fare clic su Successivo.
- Convalida l'esecuzione della distribuzione. Per la convalida, viene aggiunta una funzione personalizzata alla pipeline. Selezionare Esegui una logica personalizzata tramite una funzione e immettere i valori riportati di seguito.
- Immettere un nome e una descrizione per lo stadio. L'aggiunta di una descrizione è facoltativa.
- Per Ambiente, selezionare una funzione esistente da richiamare.
Nel campo Nome funzione di sola lettura viene visualizzata la funzione richiamata nella pipeline.
- (Facoltativo) Per selezionare e aggiungere artifact allo stadio, fare clic su Seleziona artifact.
Selezionare una risorsa artifact esistente dal progetto DevOps. L'artifact deve essere un tipo di file generico (universale). I parametri nell'artifact devono essere in formato JSON e possono avere segnaposto. Durante la configurazione della risorsa artifact DevOps, selezionare Consenti parametrizzazione. La selezione di questa casella di controllo garantisce che i segnaposto vengano sostituiti con il valore dell'argomento durante la distribuzione. Per ulteriori informazioni, vedere Configurazione di parametri.
Di seguito è riportato un esempio del contenuto generico dell'artifact per il passaggio di due parametri definiti dall'utente e dei relativi valori.- Parametri:
test_name
,app_version
- Valori:
{"test_name":"verify_production", "app_version":"${app_version}"}
- Parametri:
- In Modalità di esecuzione stadio, selezionare per eseguire l'esecuzione in modo asincrono o sincrono.
Se si seleziona Esegui in modo asincrono, il servizio richiama la funzione ma non attende il completamento della funzione. Quando si seleziona Esegui in modo sincrono, il servizio richiama la funzione e attende il completamento della funzione.
- Selezionare per disabilitare o abilitare la convalida.
Se la convalida è abilitata, il servizio verifica il valore restituito della funzione. Il valore restituito è un valore di stringa UTF-8,
true
ofalse
. Se il valore restituito ètrue
, lo stadio viene contrassegnato come Riuscito, altrimenti lo stadio viene contrassegnato come Non riuscito.Se la convalida è disabilitata, il servizio non verifica il valore restituito.
La convalida viene eseguita solo se è stata selezionata l'opzione "Esegui in modo sincrono" per la modalità di esecuzione della fase.
- (Facoltativo) Per aggiungere tag alla pipeline, fare clic su Mostra opzioni di applicazione tag. L'applicazione di tag è un sistema di metadati che consente di organizzare e tenere traccia delle risorse nella tenancy.
È possibile selezionare uno spazio di nomi tag o aggiungere un tag in formato libero. Immettere la chiave e il valore di tag corrispondenti. È possibile aggiungere più tag.
Nota
Se non si desidera convalidare l'esecuzione della distribuzione, selezionare Nessuno. - È possibile abilitare o disabilitare un'approvazione manuale per la distribuzione. Se si desidera abilitare un'approvazione, immettere i valori riportati di seguito.
- Immettere un nome e una descrizione per lo stadio. L'aggiunta di una descrizione è facoltativa.
- Inserire il numero di approvatori.
- (Facoltativo) Per aggiungere tag alla pipeline, fare clic su Mostra opzioni di applicazione tag. L'applicazione di tag è un sistema di metadati che consente di organizzare e tenere traccia delle risorse nella tenancy.
È possibile selezionare uno spazio di nomi tag o aggiungere un tag in formato libero. Immettere la chiave e il valore di tag corrispondenti. È possibile aggiungere più tag.
- Per aggiungere lo stadio alla pipeline, fare clic su Aggiungi.
Viene visualizzata una finestra modale che mostra lo stato delle varie configurazioni di fase che fanno parte della strategia di distribuzione blu-verde OKE. Possono includere la distribuzione OKE blu-verde, la funzione di richiamo, l'approvazione e le fasi di spostamento del traffico. Se la convalida non riesce, è possibile controllare il messaggio di errore specifico di ogni fase non riuscita ed eseguire un'azione correttiva.
Se la convalida riesce, è possibile eseguire la pipeline di distribuzione o aggiungere altre fasi in sequenza o in parallelo alla pipeline, in base alle esigenze.
Per creare una fase OKE blu-verde, eseguire il comando
create-deploy-oke-blue-green-stage
:oci devops deploy-stage create-deploy-oke-blue-green-stage
Parametri obbligatori:
--blue-green-strategy
--kubernetes-manifest-artifact-ids
--oke-cluster-environment-id
--pipeline-id
--stage-predecessor-collection
Per visualizzare la Guida per il comando:
oci devops deploy-stage create-oke-blue-green-stage -h
Per creare una fase di richiamo della funzione, eseguire il comando
create-invoke-function-stage
:oci devops deploy-stage create-invoke-function-stage
Parametri obbligatori:
--function-environment-id
--is-async
--is-validation-enabled
--pipeline-id
--stage-predecessor-collection
Per visualizzare la Guida per il comando:
oci devops deploy-stage create-invoke-function-stage -h
Per creare una fase di spostamento del traffico del load balancer, eseguire il comando
create-load-balancer-traffic-shift-stage
:oci devops deploy-stage create-load-balancer-traffic-shift-stage
Parametri obbligatori:
--blue-backend-ips
--green-backend-ips
--load-balancer-config
--traffic-shift-target
--rollout-policy
--pipeline-id
--stage-predecessor-collection
Per visualizzare la Guida per il comando:
oci devops deploy-stage create-load-balancer-traffic-shift-stage -h
Per creare una fase di approvazione manuale, eseguire il comando
create-manual-approval-stage
:oci devops deploy-stage create-manual-approval-stage
Parametri obbligatori:
--approval-policy
--pipeline-id
--stage-predecessor-collection
Per visualizzare la Guida per il comando:
oci devops deploy-stage create-manual-approval-stage -h
Per ottenere tutti i comandi per
deploy-stage
:oci devops deploy-stage -h
Per creare una fase, utilizzare l'operazione
CreateDeployStage
. A seconda delle fasi che si desidera aggiungere alla pipeline, selezionare i valori riportati di seguito per il tipo di fase.- Fase di distribuzione blu-verde di Kubernetes Engine (OKE):
OKE_BLUE_GREEN_DEPLOYMENT
- Fase di spostamento del traffico OKE blue-green:
OKE_BLUE_GREEN_TRAFFIC_SHIFT
- Richiama fase funzione:
INVOKE_FUNCTION
- Fase di approvazione manuale:
MANUAL_APPROVAL
- Fase di distribuzione blu-verde di Kubernetes Engine (OKE):