Se gestisci implementazioni in più flotte, ti consigliamo di utilizzare un progetto dedicato per ospitare gli oggetti RolloutSequence. Questo progetto funge da
genitore e coordinatore per i rollout nella sequenza. In genere, questo progetto non fa parte della sequenza, ovvero non contiene flotte o cluster che fanno parte della sequenza.
Prima di iniziare
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init - Assicurati di disporre di cluster Autopilot o Standard esistenti. Per creare un nuovo cluster, vedi Crea un cluster Autopilot.
- (Facoltativo) Se non hai già un progetto Cloud de Confiance by S3NS dedicato per ospitare la configurazione di
RolloutSequence, creane uno utilizzando la consoleCloud de Confiance o un altro metodo. - Assicurati di aver attivato le API richieste per
le flotte.
Queste API devono essere abilitate nei progetti host del parco risorse per creare qualsiasi tipo di
sequenza di rollout. Per il progetto host della sequenza di implementazione, abilita l'API
gkehub.googleapis.com. Per le istruzioni di Terraform, assicurati di utilizzare la seguente versione o una versione successiva del provider Terraform
google, a seconda delle azioni che vuoi intraprendere:- Per le seguenti azioni è necessaria la versione 7.39.0 o successive:
- Per la seguente azione è necessaria la versione 7.42.0 o successive:
Ruoli obbligatori
Per creare un progetto, devi disporre del ruolo Autore progetto
(roles/resourcemanager.projectCreator), che contiene l'autorizzazione
resourcemanager.projects.create. Scopri come assegnare
ruoli.
Per creare o modificare una sequenza di implementazione, devi disporre del ruolo IAM di editor del parco risorse (roles/gkehub.editor) in ogni progetto host del parco risorse nella sequenza di implementazione e nel progetto host della sequenza di implementazione. Questo ruolo fornisce
le seguenti autorizzazioni:
gkehub.rolloutsequences.creategkehub.rolloutsequences.getgkehub.rolloutsequences.listgkehub.rolloutsequences.updategkehub.rolloutsequences.deletegkehub.fleet.update
Queste autorizzazioni ti consentono di creare, accedere e modificare gli oggetti RolloutSequence e di utilizzare le flotte nella sequenza di implementazione.
Se devi registrare o annullare la registrazione dei cluster in un parco risorse, devi disporre di tutte le seguenti autorizzazioni:
- Autorizzazioni di registrazione del cluster nei progetti host del parco risorse.
- Autorizzazioni amministrative del cluster per la registrazione di tutti i cluster GKE.
- Autorizzazioni di registrazione dei cluster tra progetti per la registrazione di qualsiasi cluster GKE in un parco risorse in un progetto diverso.
Puoi creare sequenze di implementazione utilizzando flotte ospitate in progetti in una o più organizzazioni, se disponi delle autorizzazioni necessarie per questi progetti.
Per saperne di più sui ruoli IAM con privilegi minimi richiesti per diverse attività, consulta Ricevere suggerimenti sui ruoli predefiniti con l'assistenza di Gemini.
Configurare una sequenza di implementazione
Per creare una sequenza di implementazione, i cluster devono essere organizzati in gruppi di parchi risorse. Puoi anche creare fasi granulari che possono essere indirizzate a sottoinsiemi specifici di cluster all'interno di un parco risorse utilizzando le etichette Kubernetes. Per indicazioni su come organizzare i cluster, consulta l'esempio di banca della community. Dopo aver organizzato i cluster in gruppi e averli etichettati, se vuoi, crea una sequenza di implementazione definendo l'elenco ordinato delle fasi e il periodo di prova per ogni gruppo.
Organizzare i cluster in parchi risorse
In una sequenza di implementazione, ti consigliamo di registrare tutti i cluster nello stesso canale di rilascio. Se i cluster non sono registrati nello stesso canale, GKE seleziona una versione dal canale più conservativo della sequenza. Ad esempio, se i cluster sono registrati sia nel canale stabile che in quello regolare, GKE sceglie la versione del canale stabile. Inoltre, consigliamo di eseguire la stessa versione secondaria su tutti i cluster per poter essere idonei alla stessa versione di destinazione dell'upgrade automatico.
Se hai già organizzato i cluster in parchi risorse, puoi saltare i passaggi seguenti e passare alla sezione Crea sottoinsiemi di cluster.
- Raggruppa i cluster in parchi risorse. Puoi organizzare i cluster in base agli ambienti di deployment, ad esempio test, gestione temporanea e produzione (consigliato).
- Registra ogni cluster in un parco risorse in base al raggruppamento scelto.
(Facoltativo) Creare sottoinsiemi di cluster
Per fare in modo che una fase della sequenza di implementazione abbia come target cluster specifici, devi etichettare questi cluster.
Ad esempio, per testare una nuova versione su un piccolo sottoinsieme di cluster prima di un'implementazione completa, puoi applicare un'etichetta canary a questi cluster. Per aggiungere l'etichetta
canary con il valore true a un cluster utilizzando
Google Cloud CLI, esegui questo comando:
gcloud container clusters update CLUSTER_NAME \
--location=CLUSTER_LOCATION\
--update-labels=canary=true
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster esistente.CLUSTER_LOCATION: la regione o zona di Compute Engine del cluster.
Il flag --update-labels=canary=true indica a GKE di applicare l'etichetta canary al cluster .
Per ulteriori informazioni sull'aggiunta di un'etichetta a un cluster, vedi Aggiungere o aggiornare le etichette per i cluster esistenti.
Creare una sequenza di implementazione con fasi personalizzate
Una sequenza di implementazione con fasi personalizzate definisce l'ordine degli upgrade
definendo in modo dichiarativo le fasi. Con gcloud CLI, utilizzi un
file YAML, mentre con Terraform aggiungi un blocco di risorse alla configurazione.
Se esegui i passaggi descritti in questa sezione, crei un
RolloutSequence.
Per garantire che la sequenza acquisisca tutti i cluster, ogni flotta deve includere una
fase catch-all (una fase senza un selettore di etichette). Questa fase generica
acquisisce tutti i cluster rimanenti che GKE non ha selezionato nelle fasi precedenti. Se assegni un singolo cluster a più fasi all'interno di un
RolloutSequence, per risolvere i conflitti, GKE assegna implicitamente
il cluster solo alla prima fase.
Le seguenti configurazioni di esempio creano tre fasi:
- La prima fase ha come target tutti i cluster nel parco risorse
dev. Una volta completato l'upgrade, è previsto un periodo di rodaggio di 7 giorni (7d). - La seconda fase ha come target i cluster nel parco risorse
prodche hanno l'etichettacanary=true. Una volta completato l'upgrade, è previsto un periodo di rodaggio di 7 giorni (7d). La terza fase ha come target i cluster rimanenti nel parco risorse
prod. Una volta completato l'upgrade, è previsto un periodo di rodaggio di 7 giorni (7d).
gcloud
Salva il seguente manifest come
rollout-sequence.yaml:- stage: fleet-projects: - projects/dev soak-duration: 7d - stage: fleet-projects: - projects/prod soak-duration: 7d label-selector: resource.labels.canary=='true' - stage: fleet-projects: - projects/prod soak-duration: 7dTieni presente quanto segue:
stage: include un parco risorse o un sottoinsieme di cluster all'interno di un parco risorse. I cluster nelle fasi precedenti devono essere completamente sottoposti ad upgrade e testati prima che la sequenza proceda alla fase successiva. Tuttavia, se un cluster non ha terminato l'upgrade 30 giorni dopo l'inizio della procedura di upgrade, GKE inizia il periodo di sospensione.fleet-projects: un elenco di flotte da cui selezionare i cluster per questa fase. È possibile fare riferimento a un massimo di una flotta per fase. Un parco risorse è identificato dal progetto in cui è ospitato. Questo progetto può essere diverso da quello in cui si trovano i cluster, se il parco risorse contiene appartenenze tra progetti. Il formato per specificare un progetto del parco risorse èprojects/PROJECT_ID.label-selector(facoltativo): seleziona un sottoinsieme di cluster dai parchi risorse specificati. Questo campo utilizza la sintassi Common Expression Language (CEL) e deve iniziare conresource.labels.soak-duration: il tempo di attesa dopo l'upgrade di tutti i cluster in una fase precedente prima di procedere alla fase successiva. Espresso in secondi, minuti, ore e giorni.
Per creare la sequenza di implementazione definita nel manifest
rollout-sequence.yaml, esegui questo comando:gcloud container fleet rolloutsequences create ROLLOUT_SEQUENCE_NAME \ --display-name=DISPLAY_NAME \ --stage-config=rollout-sequence.yamlSostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: un identificatore immutabile conforme alle specifiche RFC-1034, ad esempiotest-rollout-sequence.DISPLAY_NAME: una stringa leggibile per la sequenza di implementazione.
Terraform
Questa sezione mostra come creare una sequenza di implementazione con fasi personalizzate
utilizzando Terraform. Puoi anche utilizzare questa risorsa per aggiornare la sequenza. Per
maggiori informazioni, consulta la documentazione di riferimento per
google_gke_hub_rollout_sequence.
Aggiungi il seguente blocco alla configurazione di Terraform per creare una risorsa di sequenza di implementazione:
resource "google_gke_hub_rollout_sequence" "rollout_sequence" { rollout_sequence_id = "ROLLOUT_SEQUENCE_NAME" display_name = "DISPLAY_NAME" stages { fleet_projects = ["projects/dev"] soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] cluster_selector { label_selector = "resource.labels.canary=='true'" } soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] soak_duration = "7d" } }Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: un identificatore immutabile conforme alle specifiche RFC-1034, ad esempiotest-rollout-sequence.DISPLAY_NAME: una stringa leggibile per la sequenza di implementazione.
Implementare una versione specifica
Puoi implementare una versione specifica nella sequenza di implementazione. Per saperne di più, consulta Implementazione di una versione specifica.
Puoi eseguire il rollout di una versione sui control plane o sui nodi dei cluster nella sequenza di rollout. Puoi selezionare in modo indipendente le versioni da implementare nei piani di controllo o nei nodi.
GKE può implementare una sola versione alla volta in una fase per il control plane o i nodi, rispettivamente. Se hai un rollout esistente in esecuzione nella prima fase della sequenza di rollout, GKE esegue le seguenti operazioni, a seconda che tu gestisca la sequenza di rollout con gcloud CLI o Terraform:
- gcloud CLI: quando esegui il comando, una richiesta interattiva ti chiede se vuoi annullare l'implementazione esistente per creare l'implementazione alla versione che hai specificato. Se rispondi in modo affermativo, GKE annulla l'implementazione esistente e ne crea una nuova. In caso contrario, GKE mantiene l'implementazione esistente e non ne crea una nuova come richiesto originariamente nel comando.
- Terraform: quando aggiorni la configurazione Terraform come descritto nella sezione successiva, GKE annulla l'implementazione esistente se è in esecuzione nella prima fase.
Implementa una versione nei control plane in una sequenza di implementazione
gcloud
Esegui questo comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--control-plane-version="CONTROL_PLANE_VERSION"
Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: il nome della sequenza di rollout.CONTROL_PLANE_VERSION: la versione da implementare. Puoi scegliere una versione specifica, ad esempio1.34.7-gke.1055000, o utilizzare un alias di versione. Per ulteriori informazioni, consulta la sezione Specifica della versione del cluster.
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, puoi implementare una versione specifica aggiungendola al blocco che hai utilizzato per creare la sequenza di implementazione.
Aggiungi il seguente campo al blocco. Puoi aggiungere il campo ovunque tranne
tra i blocchi stages, che devono essere consecutivi:
min_control_plane_version = "CONTROL_PLANE_VERSION"
Sostituisci CONTROL_PLANE_VERSION con la versione da
implementare. Puoi scegliere una versione specifica, ad esempio 1.34.7-gke.1055000,
o utilizzare un alias di versione. Per ulteriori informazioni, consulta la sezione Specifica della versione del cluster.
Se hai già utilizzato questo campo per implementare una versione del control plane,
il campo rimane nel blocco. Sostituisci la versione precedente implementata con
CONTROL_PLANE_VERSION che vuoi implementare questa
volta.
Implementa una versione nei nodi in una sequenza di implementazione
gcloud
Esegui questo comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--node-version="NODE_VERSION"
Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: il nome della sequenza di rollout.NODE_VERSION: la versione da implementare, ad esempio1.34.7-gke.1055000.
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, puoi implementare una versione specifica aggiungendola al blocco che hai utilizzato per creare la sequenza di implementazione.
Aggiungi il seguente campo al blocco. Puoi aggiungere il campo ovunque tranne
tra i blocchi stages, che devono essere consecutivi:
min_node_version = "NODE_VERSION"
Sostituisci NODE_VERSION con la versione da
implementare, ad esempio 1.34.7-gke.1055000. Se hai già utilizzato questo
campo per implementare una versione del nodo, il campo rimane nel blocco. Sostituisci
la versione precedente implementata con
NODE_VERSION che vuoi implementare questa volta.
Controllare lo stato di un'implementazione
Dopo aver configurato una sequenza di implementazione, il sistema crea automaticamente oggetti Rollout
per gestire gli upgrade. Puoi osservare e monitorare l'avanzamento di questi
oggetti utilizzando i comandi Google Cloud CLI.
Elenco implementazioni
Per elencare tutti i rollout attivi e storici nel progetto host della sequenza di rollout, esegui questo comando:
gcloud container fleet rollouts list --project=HOST_PROJECT_ID
Sostituisci HOST_PROJECT_ID con l'ID del progetto host della sequenza di implementazione.
Puoi omettere il flag --project=HOST_PROJECT_ID se ti trovi già nel progetto in cui è ospitata la sequenza di implementazione.
L'output è simile al seguente:
NAME STATE CREATE_TIME
05eb251e4f19269e23-node-1-33-5-gke-1201000-t7mqd COMPLETED 2025-10-30T20:07:46
05eb251e4f19269e23-kcp-1-33-5-gke-1201000-djwst COMPLETED 2025-10-30T18:07:06
05eb251e4f19269e23-node-1-33-5-gke-1125000-6bxvu COMPLETED 2025-10-23T17:46:54
05eb251e4f19269e23-kcp-1-33-5-gke-1125000-2f6ct RUNNING 2025-10-23T16:41:33
Nell'output precedente, i nomi dei rollout che contengono kcp si riferiscono agli upgrade del piano di controllo, mentre i nomi che contengono node si riferiscono agli upgrade dei nodi. Il segmento del nome dell'implementazione dopo kcp o node deriva dalla versione di GKE.
Descrivere un'implementazione
Per ottenere informazioni dettagliate su un particolare rollout, inclusi la versione di destinazione, lo stato e i cluster che sono stati aggiornati, utilizza il comando describe con l'ID rollout ottenuto dal comando precedente:
gcloud container fleet rollouts describe ROLLOUT_ID \
--project=HOST_PROJECT_ID
Sostituisci quanto segue:
ROLLOUT_ID: l'ID del rollout che hai ottenuto quando hai elencato i rollout.HOST_PROJECT_ID: l'ID progetto in cui è ospitata la sequenza di implementazione.
Ad esempio:
gcloud container fleet rollouts describe 927e9a989930cf3b55-kcp-1-32-4-gke-1106006 \
--project=my-hostfleet
L'output è simile al seguente:
createTime: '2025-05-26T11:47:29.909959672Z'
membershipStates:
projects/dev-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T12:20:55.601542481Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-1234567890-abcdefg-hijklm-nopqrst
state: SUCCEEDED
stageAssignment: 1
projects/dev-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T12:22:57.151203493Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-2
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-987654321-ghijkl-mno-pqr-stu-vwxyz
state: SUCCEEDED
stageAssignment: 1
projects/prod-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T13:03:34.134308942Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-567891234-efghij-klm-nopq-rstu-vwxyz
state: SUCCEEDED
stageAssignment: 2
projects/prod-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T13:06:34.025261641Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-765432198-01a7b896-67c2-523-6fjjh4-icmdydh
state: SUCCEEDED
stageAssignment: 2
name: projects/user-hostfleet/locations/global/rollouts/05eb251e4f19269e23-kcp-1-32-4-gke-1106006
rolloutSequence: projects/project-id/locations/global/rolloutSequences/my-sequence
state: COMPLETED
updateTime: '2025-07-22T07:36:51.052691989Z'
versionUpgrade:
desiredVersion: 1.32.4-gke.1106006
type: TYPE_CONTROL_PLANE
stages:
- state: COMPLETED
endTime: '2025-05-26T12:22:28.828506491Z'
stageNumber: 1
startTime: '2025-05-26T11:48:28.772658427Z'
soakDuration: 600s
- state: COMPLETED
endTime: '2025-05-26T13:06:20.026390832Z'
stageNumber: 2
startTime: '2025-05-26T12:32:38.419372153Z'
soakDuration: 600s
Informazioni sullo stato di un'implementazione
Quando descrivi un rollout, i campi stages e membershipStates dell'output forniscono lo stato di avanzamento di ogni fase e cluster all'interno di quella fase, rispettivamente.
La tabella seguente elenca i potenziali stati di una fase:
| Stato | Descrizione |
|---|---|
PENDING |
L'upgrade non è ancora iniziato per questa fase. |
RUNNING |
L'upgrade è in corso per questa fase. Se hai configurato un periodo di manutenzione per i cluster nella fase, GKE attende l'apertura del periodo prima di eseguire l'upgrade dei cluster. |
SOAKING |
Tutti i cluster in questa fase hanno completato gli upgrade e la fase si trova nel periodo di assorbimento configurato. |
FORCED_SOAKING |
L'upgrade ha richiesto più tempo di quello massimo (30 giorni), pertanto GKE ha avviato forzatamente la fase di sospensione. L'upgrade continua sui cluster rimanenti. |
COMPLETED |
La fase di rodaggio è terminata e l'implementazione procede alla fase successiva. |
La tabella seguente elenca i potenziali stati di un cluster all'interno di una sequenza:
| Stato | Descrizione |
|---|---|
PENDING |
L'upgrade è in attesa su questo cluster. |
INELIGIBLE |
Questo cluster non è idoneo per l'upgrade, probabilmente a causa di una discrepanza di versione. Il motivo della non idoneità è fornito nell'output. |
RUNNING |
L'upgrade è in corso su questo cluster. |
SUCCEEDED |
L'upgrade è stato completato correttamente su questo cluster. |
FAILED |
L'upgrade non è riuscito su questo cluster. I target non riusciti vengono ritentati all'infinito mentre la fase è attiva (in stato RUNNING o FORCED_SOAKING). |
Gestire un'implementazione
Puoi gestire un singolo rollout seguendo le istruzioni fornite nelle sezioni seguenti. Per saperne di più sulla gestione di un'implementazione e sulle azioni corrispondenti che puoi intraprendere, consulta Gestire un'implementazione.
Per gestire un'intera sequenza di implementazione e non solo un'implementazione specifica, consulta la sezione seguente, Gestisci una sequenza di implementazione.
Mettere in pausa un'implementazione
Puoi mettere in pausa un lancio attivo. Per saperne di più su questa azione, consulta Mettere in pausa un lancio.
Per mettere in pausa un'implementazione, esegui questo comando:
gcloud container fleet rollouts pause ROLLOUT_ID
Sostituisci ROLLOUT_ID con l'ID del rollout che vuoi mettere in pausa. Per ottenere gli ID implementazione per le implementazioni nella sequenza di implementazione,
consulta Elencare le implementazioni.
Riprendere un'implementazione
Puoi riprendere un'implementazione interrotta da meno di 90 giorni. Per maggiori informazioni su questa azione, consulta Riprendere un lancio.
Per riprendere un'implementazione in pausa, esegui questo comando:
gcloud container fleet rollouts resume ROLLOUT_ID
Sostituisci ROLLOUT_ID con l'ID dell'implementazione che vuoi riprendere. Per ottenere gli ID implementazione per le implementazioni nella sequenza di implementazione, consulta Elenco delle implementazioni.
Annullare un'implementazione
Puoi annullare un'implementazione, incluse quelle attive o in pausa. Non puoi annullare i rollout per gli upgrade automatici obbligatori. Per ulteriori informazioni sull'annullamento delle implementazioni, consulta Annullare un'implementazione.
Per annullare un'implementazione, esegui questo comando:
gcloud container fleet rollouts cancel ROLLOUT_ID
Sostituisci ROLLOUT_ID con l'ID dell'implementazione che vuoi annullare. Per ottenere gli ID implementazione per le implementazioni nella sequenza di implementazione, consulta Elenco delle implementazioni.
Completare una fase di implementazione
Puoi completare una fase di implementazione se vuoi che gli upgrade passino alla fase successiva. Per saperne di più su questa azione, consulta Completare una fase di implementazione.
Per completare una fase di implementazione, esegui questo comando:
gcloud container fleet rollouts force-complete-stage ROLLOUT_ID \
--stage=STAGE
Sostituisci quanto segue:
ROLLOUT_ID: l'ID dell'implementazione in cui vuoi completare una fase. Per ottenere gli ID implementazione per le implementazioni nella sequenza di implementazione, consulta Elenco delle implementazioni.STAGE: la fase che vuoi completare ora. Ad esempio, se vuoi completare la seconda fase, inserisci2. La fase deve essere in esecuzione o in ammollo per utilizzare questo comando.
Ignorare un cluster in una sequenza di implementazione per un'implementazione specifica
Puoi fare in modo che GKE ignori un cluster in una sequenza di implementazione se non vuoi che venga eseguito l'upgrade del cluster nell'ambito di un'implementazione attiva. Tuttavia, questa azione rimuove il cluster dalla sequenza di implementazione per le implementazioni attive e future, non solo per quelle attive.
Per eseguire questa azione per impedire l'upgrade di un cluster in un rollout attivo, consulta Ignorare un cluster in una sequenza di rollout.
Gestisci una sequenza di implementazione
Puoi controllare gli upgrade automatici dei cluster con la sequenza di implementazione in diversi modi, come spiegato nelle sezioni seguenti.
Se vuoi gestire un'implementazione da una sequenza di implementazione anziché l'intera sequenza di implementazione e tutte le relative implementazioni, consulta Gestire un'implementazione.
Elenca le sequenze di implementazione
Per elencare tutte le sequenze di implementazione nel progetto host, esegui questo comando:
gcloud container fleet rolloutsequences list --project=HOST_PROJECT_ID
Sostituisci HOST_PROJECT_ID con l'ID del progetto host della sequenza di implementazione.
Descrivere una sequenza di implementazione
Per visualizzare i dettagli di una sequenza di implementazione specifica, esegui questo comando:
gcloud container fleet rolloutsequences describe ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: il nome della sequenza di implementazione.HOST_PROJECT_ID: l'ID del progetto host della sequenza di implementazione.
L'output è simile al seguente:
createTime: '2025-10-23T16:40:16.403871189Z'
displayName: my-display-name
name: projects/HOST_PROJECT_ID/locations/global/rolloutSequences/ROLLOUT_SEQUENCE_NAME
stages:
- clusterSelector:
labelSelector: resource.labels.canary=='true'
fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 600s
- fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 300s
uid: 5c5b2ac8-9d76-45f9-92ca-5e6bd3fbcaef
updateTime: '2025-10-23T17:11:57.285678399Z'
Scegli i tipi di upgrade eseguiti da GKE in una sequenza di implementazione
Per impostazione predefinita, GKE esegue tutti i tipi di upgrade del cluster in una sequenza di implementazione. Puoi limitare l'ambito degli upgrade del cluster in una sequenza di implementazione per eseguire solo tipi specifici di upgrade. Per informazioni, vedi Scegliere i tipi di upgrade eseguiti da GKE in una sequenza di implementazione.
Per specificare i tipi di upgrade che vuoi che GKE esegua in una sequenza di implementazione, segui queste istruzioni, a seconda di come gestisci la sequenza di implementazione:
gcloud
Esegui questo comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--auto-rollout-scope=TYPES_OF_UPGRADES
Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: il nome della sequenza di rollout.TYPES_OF_UPGRADES: l'elenco degli upgrade da eseguire, che può essere il seguente:all: il valore predefinito, GKE esegue tutti i tipi di upgrade del cluster nella sequenza di implementazione.none: GKE non esegue upgrade dei cluster nella sequenza di implementazione, ad eccezione delle implementazioni per gli upgrade automatici obbligatori.Uno o più dei seguenti valori; se sono più di uno, inserisci i valori in un elenco separato da virgole senza spazi:
control-plane-patch: GKE esegue upgrade automatici del control plane del cluster alle versioni patch successive.control-plane-minor: GKE esegue upgrade automatici del control plane del cluster alle versioni secondarie successive.nodes-patch: GKE esegue upgrade automatici dei nodi del cluster alle versioni patch successive.nodes-minor: GKE esegue upgrade automatici dei nodi del cluster alle versioni secondarie successive.
Ad esempio, se vuoi che solo le versioni patch vengano implementate nella sequenza di implementazione, specifica la configurazione
control-plane-patch,nodes-patch.
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, puoi specificare i tipi di upgrade che vuoi che GKE esegua in quella sequenza di implementazione aggiungendoli al blocco che hai utilizzato per creare la sequenza di implementazione.
Aggiungi il seguente campo al blocco. Puoi aggiungere il campo ovunque tranne
tra i blocchi stages, che devono essere consecutivi:
auto_upgrade_config {
rollout_creation_scope {
upgrade_types = [
UPGRADE_TYPES
]
}
}
Sostituisci UPGRADE_TYPES con l'elenco degli upgrade da
eseguire, che può essere uno o più dei seguenti (ciascuno tra virgolette):
"CONTROL_PLANE_PATCH": GKE esegue upgrade automatici del control plane del cluster alle versioni patch successive."CONTROL_PLANE_MINOR": GKE esegue upgrade automatici del control plane del cluster alle versioni secondarie successive."NODE_PATCH": GKE esegue upgrade automatici dei nodi del cluster alle versioni patch successive."NODE_MINOR": GKE esegue upgrade automatici dei nodi del cluster alle versioni secondarie successive.
Ad esempio, se vuoi che solo le versioni patch vengano implementate nella sequenza di implementazione, specifica la configurazione upgrade_types = ["CONTROL_PLANE_PATCH", "NODE_PATCH"].
Se imposti upgrade_types = [], GKE non esegue upgrade dei cluster nella sequenza di implementazione, ad eccezione delle implementazioni per gli upgrade automatici obbligatori.
Per ripristinare il comportamento predefinito in cui GKE esegue tutti
i tipi di upgrade del cluster nella sequenza di implementazione, specifica
la configurazione upgrade_types = ["CONTROL_PLANE_PATCH", "CONTROL_PLANE_MINOR", "NODE_PATCH", "NODE_MINOR"]. In alternativa, rimuovi il blocco auto_upgrade_config dalla
configurazione Terraform.
Modifica una sequenza di implementazione
Puoi modificare una sequenza di implementazione esistente dopo averla creata. Modifica la sequenza di implementazione seguendo le istruzioni riportate di seguito, a seconda di come la gestisci.
gcloud
Se utilizzi gcloud CLI per gestire la sequenza di implementazione, puoi modificare il file di configurazione YAML in cui hai definito la sequenza. Ad esempio, puoi aggiornare il tempo di ammollo per una fase o aggiornare la fase per modificare l'ordine degli upgrade. Dopo aver modificato il file, applica le modifiche.
Ad esempio, se hai definito la sequenza di implementazione originale in un file denominato
rollout-sequence.yaml, modificalo in base alle esigenze. Quindi, esegui il comando
seguente:
gcloud container fleet rolloutsequences update test-rollout-sequence \
--display-name="My Updated Rollout Sequence" \
--stage-config=rollout-sequence.yaml
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, modifica la sequenza di implementazione modificando il blocco che hai utilizzato per creare la sequenza di implementazione.
Ignorare un cluster in una sequenza di implementazione
Puoi fare in modo che GKE ignori un cluster in una sequenza di implementazione. Puoi ignorare uno o più cluster in una sequenza di implementazione. Per ulteriori informazioni, vedi Ignorare un cluster in una sequenza di implementazione.
Per fare in modo che GKE ignori un cluster in una sequenza di implementazione, segui questi passaggi:
- Aggiungi un'etichetta
al cluster che vuoi che GKE ignori o utilizza un'etichetta
esistente. Puoi fare in modo che GKE ignori, ad esempio, un'etichetta come
statusoppure un'etichetta quando ha un valore specifico, ad esempiostatus=quarantine. Imposta la sequenza di implementazione in modo che ignori i cluster con questa etichetta. Per farlo, segui questi passaggi, a seconda di come gestisci la sequenza di implementazione:
gcloud
Esegui questo comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \ --ignored-clusters-selector="resource.labels.LABEL_TO_IGNORE"Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAME: il nome della sequenza di implementazione.LABEL_TO_IGNORE: il nome dell'etichetta per i cluster che GKE deve ignorare per la sequenza di implementazione.
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, aggiungi il seguente campo al blocco che hai utilizzato per creare la sequenza di implementazione. Puoi aggiungere il campo ovunque tranne che tra i blocchi
stages, che devono essere consecutivi:ignored_clusters_selector { label_selector = "resource.labels.LABEL_TO_IGNORE" }Sostituisci
LABEL_TO_IGNOREcon il nome dell'etichetta per i cluster che GKE deve ignorare per la sequenza di implementazione.
Queste istruzioni configurano GKE in modo che ignori un tipo di etichetta nella
sequenza di implementazione. Se vuoi ignorare più etichette o creare espressioni più complesse per ignorare i cluster con etichette specifiche, puoi passare i valori a questo campo utilizzando la sintassi dell'espressione CEL.
Tutte le etichette devono utilizzare il prefisso resource.labels..
Aggiungere un cluster a una sequenza di implementazione
Se hai seguito le istruzioni nella sezione precedente per GKE per ignorare un cluster in una sequenza di implementazione, puoi annullare questa azione. Se vuoi che GKE non ignori più i cluster, rimuovi il selettore di ignoranza seguendo le istruzioni riportate di seguito, a seconda di come gestisci la sequenza di implementazione:
gcloud
Esegui questo comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--clear-ignored-clusters-selector
Sostituisci ROLLOUT_SEQUENCE_NAME con il nome della sequenza di rollout.
Questo comando reimposta il selettore di ignoranza in modo che GKE non ignori alcun cluster nella sequenza.
Terraform
Se utilizzi Terraform per gestire la sequenza di implementazione, rimuovi il blocco
ignored_clusters_selector dal blocco che hai utilizzato per creare
la sequenza di implementazione.
In alternativa, se vuoi che GKE non ignori un cluster specifico, rimuovi le etichette dal cluster.
Elimina una sequenza di implementazione
Per eliminare una sequenza di implementazione, esegui questo comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Sostituisci quanto segue:
ROLLOUT_SEQUENCE_NAMEcon il nome della sequenza di implementazione.HOST_PROJECT_IDcon l'ID del progetto host della sequenza di implementazione.
Quando elimini una sequenza di implementazione, vengono annullate tutte le implementazioni in corso per quella sequenza. I cluster che facevano parte della sequenza tornano al comportamento di upgrade automatico predefinito per il canale di rilascio registrato.
Eseguire la migrazione di una sequenza di implementazione esistente per utilizzare fasi personalizzate
Se utilizzi la versione basata sulla flotta del
sequenziamento del lancio,
puoi eseguire la migrazione a una sequenza che utilizza fasi personalizzate creando un nuovo
RolloutSequence che fa riferimento alle tue flotte esistenti. Tieni presente che questa versione
del sequenziamento del lancio non supporta la console Cloud de Confiance .
Per eseguire la migrazione della sequenza di implementazione:
(Facoltativo) Prima di eseguire la migrazione della sequenza, crea una copia della configurazione della sequenza di implementazione corrente. Per creare una copia della configurazione, esegui una delle seguenti operazioni:
- gcloud CLI: esegui il comando per controllare lo stato di una sequenza di implementazione basata sulla flotta. Salva l'output del comando.
- Terraform: salva la configurazione Terraform.
Ti consigliamo di non eliminare la sequenza di implementazione basata sulla flotta per semplificare il ripristino della versione precedente della sequenza di implementazione, se necessario. Non è necessario eliminare la sequenza di implementazione basata sul parco per far funzionare la sequenza di implementazione con fasi personalizzate, perché GKE rispetta solo la sequenza di implementazione con fasi personalizzate quando sono presenti entrambe.
Crea un progetto Cloud de Confiance by S3NS dedicato per ospitare la sequenza di implementazione. Questo progetto in genere non fa parte della sequenza, ovvero non contiene flotte o cluster che fanno parte della sequenza.
Se vuoi che la sequenza di implementazione includa cluster specifici all'interno di un parco risorse, aggiungi etichette a questi cluster. Questo passaggio è facoltativo.
Segui le istruzioni riportate nella sezione Creare una sequenza di implementazione con fasi personalizzate.
Ad esempio, il seguente manifest, denominato
rollout-sequence-migrate.yaml, fa riferimento alle flotte esistenti in una sequenza di implementazione precedente. Questo manifest descrive tre fasi, tra cui una fasecanarynel parco risorseprod:- stage: fleet-projects: - projects/dev soak-duration: 604800s - stage: fleet-projects: - projects/prod soak-duration: 604800s label-selector: canary=true - stage: fleet-projects: - projects/prod soak-duration: 604800s
Subito dopo aver definito un nuovo RolloutSequence per i tuoi parchi risorse, GKE inizia
l'upgrade dei parchi risorse in base alla nuova sequenza e rimuove la configurazione
precedente.
Eseguire la migrazione di una sequenza di implementazione con fasi personalizzate alla sequenza di implementazione precedente
Questa sezione descrive come ripristinare la sequenza di implementazione con fasi personalizzate
al modello di sequenza di implementazione basato sul parco risorse. Questa procedura prevede l'eliminazione
del nuovo RolloutSequence e il ripristino della configurazione originale basata sulla flotta.
Evitare l'upgrade fuori ordine durante la migrazione
Per evitare upgrade involontari o fuori sequenza durante la riconfigurazione della sequenza, applica un'esclusione dalla manutenzione ai cluster di produzione. Questo passaggio mette temporaneamente in pausa tutti gli upgrade automatici
su questi cluster. Ad esempio, puoi configurare un'esclusione dalla manutenzione di
tipo no upgrades sui cluster di produzione.
Elimina la sequenza di implementazione
Elimina l'oggetto RolloutSequence che gestisce i cluster. Questa eliminazione
disattiva la funzionalità delle fasi personalizzate.
Per eliminare RolloutSequence, esegui questo comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME
Sostituisci ROLLOUT_SEQUENCE_NAME con il nome della sequenza di rollout.
Ripristina la configurazione della sequenza di implementazione precedente (senza fasi personalizzate)
Dopo aver eliminato RolloutSequence, puoi ripristinare la configurazione originale basata sul parco risorse. Questo processo prevede la ricreazione delle funzionalità clusterupgrade con i relativi parametri originali, inclusi i link upstreamFleet e i tempi di rodaggio per ogni flotta nella sequenza. Per saperne di più, vedi Creare una sequenza di implementazione.
Rimuovi le esclusioni dalla manutenzione
Dopo aver ripristinato la configurazione originale della sequenza di implementazione basata sulla flotta, rimuovi l'esclusione per la manutenzione che hai applicato nel primo passaggio di questa sezione. GKE riprende gli upgrade automatici, ora regolati dalla sequenza basata sul parco risorse ripristinata.
Passaggi successivi
- Scopri di più sugli upgrade dei cluster con sequenza di implementazione.