Se você gerencia rollouts em várias frotas, recomendamos usar um projeto dedicado para hospedar seus objetos RolloutSequence. Esse projeto atua como
pai e coordenador dos rollouts em toda a sequência. Normalmente, esse projeto não faz parte da sequência. Ou seja, ele não contém frotas nem clusters que fazem parte da sequência.
Antes de começar
-
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud init - Verifique se você tem clusters do Autopilot ou do Standard. Para criar um novo cluster, consulte Criar um cluster do Autopilot.
- (Opcional) Se você ainda não tiver um projeto Cloud de Confiance by S3NS dedicado para
hospedar sua configuração do
RolloutSequence, crie um usando o console doCloud de Confiance ou outro método. - Verifique se você ativou as
APIs necessárias para as frotas.
Essas APIs precisam ser ativadas nos projetos host da frota para criar qualquer tipo de
sequência de implantação. No projeto host da sequência de lançamento, ative a API
gkehub.googleapis.com. Para instruções do Terraform, use a seguinte versão ou posterior do provedor
googledo Terraform, dependendo das ações que você quer realizar:- A versão 7.39.0 ou mais recente é necessária para as seguintes ações:
- A versão 7.42.0 ou mais recente é necessária para a seguinte ação:
Funções exigidas
Para criar um projeto, é preciso ter o papel Criador de projetos
(roles/resourcemanager.projectCreator), que contém a permissão
resourcemanager.projects.create. Saiba como conceder
papéis.
Para criar ou modificar uma sequência de lançamento, você precisa ter o papel de editor da frota
do IAM (roles/gkehub.editor) em cada projeto host da frota na
sequência de lançamento e no projeto host da sequência de lançamento. Esse papel oferece as seguintes permissões:
gkehub.rolloutsequences.creategkehub.rolloutsequences.getgkehub.rolloutsequences.listgkehub.rolloutsequences.updategkehub.rolloutsequences.deletegkehub.fleet.update
Com essas permissões, é possível criar, acessar e modificar objetos RolloutSequence e usar frotas na sequência de lançamento.
Se você precisar registrar ou cancelar o registro de clusters em uma frota, precisará de todas as permissões a seguir:
- Permissões de registro de cluster nos projetos host da frota.
- Permissões de administrador de cluster para todos os clusters do GKE serem registrados.
- Permissões de registro de cluster entre projetos para que todos os clusters do GKE sejam registrados em uma frota em um projeto diferente.
É possível criar sequências de lançamento usando frotas hospedadas em projetos de uma ou mais organizações, se você tiver as permissões necessárias para esses projetos.
Para mais informações sobre os papéis do IAM com menos privilégios necessários para diferentes tarefas, consulte Receber sugestões de papéis predefinidos com a assistência do Gemini.
Configurar uma sequência de lançamento
Para criar uma sequência de lançamento, os clusters precisam ser organizados em grupos de frotas. Também é possível criar etapas granulares que segmentam subconjuntos específicos de clusters em uma frota usando rótulos do Kubernetes. Para orientações sobre como organizar os clusters, consulte o exemplo do banco comunitário. Depois de organizar os clusters em grupos e, opcionalmente, rotulá-los, crie uma sequência de lançamento definindo a lista ordenada de estágios e o tempo de espera para cada grupo.
Organizar clusters em frotas
Em uma sequência de lançamento, recomendamos registrar todos os clusters no mesmo canal de lançamento. Se os clusters não estiverem registrados no mesmo canal, o GKE vai selecionar uma versão do canal mais conservador na sequência. Por exemplo, se os clusters estiverem registrados nos canais Estável e Normal, o GKE vai escolher a versão do canal Estável. Também recomendamos que todos os clusters executem a mesma versão secundária para se qualificarem para a mesma versão de destino do upgrade automático.
Se você já tiver organizado os clusters em frotas, pule as etapas a seguir e continue para a seção Criar subconjuntos de clusters.
- Agrupe os clusters em frotas. É possível organizar os clusters por ambientes de implantação, como teste, preparo e Production (recomendado).
- Registre cada cluster com uma frota com base no agrupamento escolhido.
Criar subconjuntos de clusters (opcional)
Para que uma etapa na sua sequência de lançamento tenha como destino clusters específicos, é preciso rotular esses clusters.
Por exemplo, para testar uma nova versão em um pequeno subconjunto de clusters antes de um
lançamento completo, aplique um rótulo canary a esses clusters. Para adicionar o rótulo
canary com o valor true a um cluster usando a
Google Cloud CLI, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--location=CLUSTER_LOCATION\
--update-labels=canary=true
Substitua:
CLUSTER_NAME: o nome do cluster existente.CLUSTER_LOCATION: a região ou zona do Compute Engine do cluster.
A flag --update-labels=canary=true instrui o GKE a aplicar o rótulo canary ao cluster .
Para mais informações sobre como adicionar um rótulo a um cluster, consulte Adicionar ou atualizar rótulos em clusters atuais.
Criar uma sequência de lançamento com etapas personalizadas
Uma sequência de lançamento com estágios personalizados define a ordem dos upgrades
declarando os estágios. Com a CLI gcloud, você usa um arquivo YAML, e com o Terraform, adiciona um bloco de recursos à configuração.
Ao executar as etapas descritas nesta seção, você cria um
RolloutSequence.
Para garantir que a sequência capture todos os clusters, cada frota precisa incluir uma
etapa de captura geral (uma etapa sem um seletor de rótulo). Essa etapa de captura
abrange todos os clusters restantes que o GKE não selecionou nas etapas
anteriores. Se você atribuir um único cluster a várias etapas em um RolloutSequence, para resolver conflitos, o GKE vai atribuir o cluster apenas à primeira etapa.
As configurações de exemplo a seguir criam três estágios:
- A primeira etapa tem como destino todos os clusters na frota
dev. Após a conclusão do upgrade, há um tempo de imersão de sete dias (7d). - A segunda etapa segmenta clusters na frota
prodque têm o rótulocanary=true. Após a conclusão do upgrade, há um tempo de imersão de 7 dias (7d). A terceira etapa tem como destino os clusters restantes na frota
prod. Após a conclusão do upgrade, há um tempo de imersão de sete dias (7d).
gcloud
Salve o seguinte manifesto como
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: 7dObserve o seguinte:
stage: inclui uma frota ou um subconjunto de clusters em uma frota. Os clusters em estágios anteriores precisam ser totalmente atualizados e testados antes que a sequência avance para a próxima etapa. No entanto, se um cluster não concluir o upgrade 30 dias após o início do processo, o GKE vai iniciar o período de imersão.fleet-projects: uma lista de frotas para selecionar clusters para esta etapa. É possível referenciar no máximo uma frota por etapa. Uma frota é identificada pelo projeto em que ela está hospedada. Esse projeto pode ser diferente do projeto em que os clusters estão localizados, se a frota tiver associações entre projetos. O formato para especificar um projeto de frota éprojects/PROJECT_ID.label-selector(opcional): seleciona um subconjunto de clusters das frotas especificadas. Esse campo usa a sintaxe da Common Expression Language (CEL) e precisa começar comresource.labels.soak-duration: o tempo a ser aguardado após o upgrade de todos os clusters em uma etapa anterior antes de prosseguir para a próxima etapa. Expressa em segundos, minutos, horas e dias.
Para criar a sequência de lançamento definida no manifesto
rollout-sequence.yaml, execute o seguinte comando:gcloud container fleet rolloutsequences create ROLLOUT_SEQUENCE_NAME \ --display-name=DISPLAY_NAME \ --stage-config=rollout-sequence.yamlSubstitua:
ROLLOUT_SEQUENCE_NAME: um identificador imutável que está em conformidade com as especificações RFC-1034. Por exemplo,test-rollout-sequence.DISPLAY_NAME: uma string legível para humanos da sequência de lançamento.
Terraform
Nesta seção, mostramos como criar uma sequência de lançamento com etapas personalizadas
usando o Terraform. Também é possível usar esse recurso para atualizar a sequência. Para
mais informações, consulte a documentação de referência para
google_gke_hub_rollout_sequence.
Adicione o seguinte bloco à sua configuração do Terraform para criar um recurso de sequência de lançamento:
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" } }Substitua:
ROLLOUT_SEQUENCE_NAME: um identificador imutável que está em conformidade com as especificações RFC-1034. Por exemplo,test-rollout-sequence.DISPLAY_NAME: uma string legível para humanos da sequência de lançamento.
Lançar uma versão específica
Você pode lançar uma versão específica na sua sequência de lançamento. Para mais informações, consulte Lançar uma versão específica.
É possível lançar uma versão para os planos de controle ou nós dos clusters na sua sequência de lançamento. Você pode selecionar de forma independente quais versões serão lançadas para os planos de controle ou nós.
O GKE só pode lançar uma versão por vez em um estágio para o plano de controle ou os nós, respectivamente. Se você tiver um lançamento em andamento na primeira etapa da sequência, o GKE fará o seguinte, dependendo se você gerencia a sequência com a CLI gcloud ou o Terraform:
- CLI gcloud: quando você executa o comando, um prompt interativo pergunta se você quer cancelar o lançamento atual para criar o lançamento para a versão especificada. Se você responder afirmativamente, o GKE vai cancelar a implantação em andamento e criar uma nova. Caso contrário, o GKE vai manter o lançamento atual e não vai criar um novo, como você solicitou originalmente no comando.
- Terraform: quando você atualiza a configuração do Terraform, conforme descrito na próxima seção, o GKE cancela o lançamento em andamento se ele estiver na primeira etapa.
Lançar uma versão para os planos de controle em uma sequência de lançamento
gcloud
Execute este comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--control-plane-version="CONTROL_PLANE_VERSION"
Substitua:
ROLLOUT_SEQUENCE_NAME: o nome da sequência de implantação.CONTROL_PLANE_VERSION: a versão a ser lançada. É possível escolher uma versão específica, como1.34.7-gke.1055000, ou usar um alias de versão. Para mais informações, consulte Como especificar a versão do cluster.
Terraform
Se você usa o Terraform para gerenciar sua sequência de lançamento, é possível lançar uma versão específica adicionando ao bloco usado para criar a sequência de lançamento.
Adicione o seguinte campo ao bloco. Você pode adicionar o campo em qualquer lugar, exceto entre os blocos stages, que precisam ser consecutivos:
min_control_plane_version = "CONTROL_PLANE_VERSION"
Substitua CONTROL_PLANE_VERSION pela versão a ser
lançada. Você pode escolher uma versão específica, como 1.34.7-gke.1055000,
ou usar um alias de versão. Para mais informações, consulte Como especificar a versão do cluster.
Se você já usou esse campo para lançar uma versão do plano de controle,
ele vai permanecer no bloco. Substitua a versão anterior lançada pelo CONTROL_PLANE_VERSION que você quer lançar desta vez.
Implantar uma versão nos nós em uma sequência de lançamento
gcloud
Execute este comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--node-version="NODE_VERSION"
Substitua:
ROLLOUT_SEQUENCE_NAME: o nome da sequência de implantação.NODE_VERSION: a versão a ser lançada, por exemplo,1.34.7-gke.1055000.
Terraform
Se você usa o Terraform para gerenciar sua sequência de lançamento, é possível lançar uma versão específica adicionando ao bloco usado para criar a sequência de lançamento.
Adicione o seguinte campo ao bloco. Você pode adicionar o campo em qualquer lugar, exceto entre os blocos stages, que precisam ser consecutivos:
min_node_version = "NODE_VERSION"
Substitua NODE_VERSION pela versão a ser
lançada, por exemplo, 1.34.7-gke.1055000. Se você já usou esse
campo para lançar uma versão de nó, ele vai permanecer no bloco. Substitua
a versão anterior lançada pelo
NODE_VERSION que você quer lançar desta vez.
Verificar o status de um lançamento
Depois de configurar uma sequência de lançamento, o sistema cria automaticamente objetos Rollout
para gerenciar upgrades. É possível observar e acompanhar o progresso desses
objetos usando comandos da Google Cloud CLI.
Listar lançamentos
Para listar todos os lançamentos ativos e históricos no projeto host da sequência de lançamento, execute o comando a seguir:
gcloud container fleet rollouts list --project=HOST_PROJECT_ID
Substitua HOST_PROJECT_ID pelo ID do projeto host da sequência de lançamento.
É possível omitir a flag --project=HOST_PROJECT_ID se você já estiver no
projeto em que a sequência de lançamento está hospedada.
O resultado será o seguinte:
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
Na saída anterior, os nomes de implantação que contêm kcp se referem a upgrades do plano de controle, e os nomes que contêm node se referem a upgrades de nós. O segmento do nome do lançamento após kcp ou node é derivado da versão do GKE.
Descrever um lançamento
Para informações detalhadas sobre um lançamento específico, incluindo a versão de destino, o estado e quais clusters foram atualizados, use o comando describe com o ID do lançamento que você recebeu do comando anterior:
gcloud container fleet rollouts describe ROLLOUT_ID \
--project=HOST_PROJECT_ID
Substitua:
ROLLOUT_ID: o ID do lançamento que você recebeu ao listar os lançamentos.HOST_PROJECT_ID: o ID do projeto em que sua sequência de lançamento é hospedada.
Exemplo:
gcloud container fleet rollouts describe 927e9a989930cf3b55-kcp-1-32-4-gke-1106006 \
--project=my-hostfleet
O resultado será o seguinte:
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
Informações de status para um lançamento
Ao descrever um lançamento, os campos stages e membershipStates da
saída fornecem o status de progresso de cada estágio e cluster dentro desse estágio,
respectivamente.
A tabela a seguir lista os possíveis status de uma etapa:
| Status | Descrição |
|---|---|
PENDING |
O upgrade ainda não começou para esta etapa. |
RUNNING |
O upgrade está em andamento para esta etapa. Se você tiver configurado uma janela de manutenção para os clusters no estágio, o GKE vai esperar que ela seja aberta antes de fazer upgrade dos clusters. |
SOAKING |
Todos os clusters nesta etapa concluíram os upgrades, e a etapa está no período de imersão configurado. |
FORCED_SOAKING |
O upgrade levou mais que o tempo máximo (30 dias) e, portanto, o GKE iniciou a fase de imersão. O upgrade ainda continua nos clusters restantes. |
COMPLETED |
A fase de absorção terminou, e o lançamento segue para a próxima etapa. |
A tabela a seguir lista os possíveis status de um cluster em uma sequência:
| Status | Descrição |
|---|---|
PENDING |
O upgrade está pendente neste cluster. |
INELIGIBLE |
Este cluster não está qualificado para o upgrade, possivelmente devido a uma discrepância de versão. O motivo da inelegibilidade é fornecido na saída. |
RUNNING |
O upgrade está em andamento neste cluster. |
SUCCEEDED |
O upgrade foi concluído no cluster. |
FAILED |
O upgrade falhou neste cluster. As tentativas de destinos com falha são repetidas indefinidamente enquanto a etapa está ativa (no estado RUNNING ou FORCED_SOAKING). |
Gerenciar um lançamento
Para gerenciar um lançamento individual, siga as instruções nas seções abaixo. Para mais informações sobre como gerenciar um lançamento e as ações correspondentes que você pode realizar, consulte Gerenciar um lançamento.
Para gerenciar uma sequência de lançamento inteira, e não apenas um lançamento específico, consulte a seção a seguir, Gerenciar uma sequência de lançamento.
Pausar um lançamento
É possível pausar uma implantação ativa. Para mais informações sobre essa ação, consulte Como pausar um lançamento.
Para pausar uma implementação, execute o seguinte comando:
gcloud container fleet rollouts pause ROLLOUT_ID
Substitua ROLLOUT_ID pelo ID do lançamento que você quer pausar. Para conferir os IDs dos lançamentos na sua sequência,
consulte Listar lançamentos.
Retomar um lançamento
É possível retomar um lançamento pausado há menos de 90 dias. Para mais informações sobre essa ação, consulte Retomar um lançamento.
Para retomar um lançamento pausado, execute o seguinte comando:
gcloud container fleet rollouts resume ROLLOUT_ID
Substitua ROLLOUT_ID pelo ID do lançamento que você quer retomar. Para conferir os IDs dos lançamentos na sua
sequência, consulte Listar lançamentos.
Cancelar um lançamento
É possível cancelar um lançamento, incluindo os que estão ativos ou foram pausados. Não é possível cancelar implantações de upgrades automáticos obrigatórios. Para mais informações sobre como cancelar lançamentos, consulte Cancelar um lançamento.
Para cancelar um lançamento, execute o seguinte comando:
gcloud container fleet rollouts cancel ROLLOUT_ID
Substitua ROLLOUT_ID pelo ID do lançamento que você quer cancelar. Para conferir os IDs dos lançamentos na sua
sequência, consulte Listar lançamentos.
Concluir uma etapa de lançamento
Você pode concluir uma etapa de lançamento se estiver tudo pronto para que os upgrades passem para a próxima etapa. Para mais informações sobre essa ação, consulte Concluir uma etapa de lançamento.
Para concluir uma etapa de lançamento, execute o seguinte comando:
gcloud container fleet rollouts force-complete-stage ROLLOUT_ID \
--stage=STAGE
Substitua:
ROLLOUT_ID: o ID do lançamento em que você quer concluir uma etapa. Para conferir os IDs dos lançamentos na sua sequência, consulte Listar lançamentos.STAGE: a etapa que você quer concluir agora. Por exemplo, se você quiser concluir a segunda etapa, digite2. O estágio precisa estar em execução ou em período de saturação para usar esse comando.
Ignorar um cluster em uma sequência de lançamento para um lançamento específico
Você pode fazer com que o GKE ignore um cluster em uma sequência de lançamento se não quiser que ele seja atualizado como parte de um lançamento ativo. No entanto, essa ação remove o cluster da sequência de lançamento para lançamentos ativos e futuros, não apenas os ativos.
Para realizar essa ação e evitar que um cluster seja atualizado em um lançamento ativo, consulte Ignorar um cluster em uma sequência de lançamento.
Gerenciar uma sequência de lançamento
É possível controlar os upgrades automáticos de cluster com o sequenciamento de lançamento de várias maneiras, conforme explicado nas seções a seguir.
Se você quiser gerenciar um lançamento de uma sequência em vez de toda a sequência e todos os lançamentos dela, consulte Gerenciar um lançamento.
Listar as sequências de lançamento
Para listar todas as sequências de lançamento no projeto host, execute o seguinte comando:
gcloud container fleet rolloutsequences list --project=HOST_PROJECT_ID
Substitua HOST_PROJECT_ID pelo ID do projeto host da sequência de lançamento.
Descrever uma sequência de lançamento
Para conferir os detalhes de uma sequência de lançamento específica, execute o seguinte comando:
gcloud container fleet rolloutsequences describe ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Substitua:
ROLLOUT_SEQUENCE_NAME: o nome da sequência de lançamento.HOST_PROJECT_ID: o ID do projeto host da sua sequência de lançamento.
O resultado será o seguinte:
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'
Escolher os tipos de upgrades que o GKE realiza em uma sequência de lançamento
Por padrão, o GKE realiza todos os tipos de upgrades de cluster em uma sequência de lançamento. É possível restringir o escopo dos upgrades de cluster em uma sequência de lançamento para realizar apenas tipos específicos de upgrades. Para mais informações, consulte Escolher os tipos de upgrades que o GKE realiza em uma sequência de lançamento.
Para designar os tipos de upgrades que você quer que o GKE faça em uma sequência de lançamento, siga estas instruções, dependendo de como você gerencia sua sequência de lançamento:
gcloud
Execute este comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--auto-rollout-scope=TYPES_OF_UPGRADES
Substitua:
ROLLOUT_SEQUENCE_NAME: o nome da sequência de implantação.TYPES_OF_UPGRADES: a lista de upgrades a serem realizados, que pode ser:all: o padrão. O GKE realiza todos os tipos de upgrade de cluster na sequência de lançamento.none: o GKE não faz upgrades de cluster na sequência de lançamento, exceto lançamentos para upgrades automáticos obrigatórios.Uma ou mais das seguintes opções. Se houver mais de uma, coloque os valores em uma lista separada por vírgulas sem espaços:
control-plane-patch: o GKE realiza upgrades automáticos do plano de controle do cluster para versões de patch mais recentes.control-plane-minor: o GKE realiza upgrades automáticos do plano de controle do cluster para versões secundárias mais recentes.nodes-patch: o GKE realiza upgrades automáticos de nós do cluster para versões de patch mais recentes.nodes-minor: o GKE realiza upgrades automáticos de nós de cluster para versões secundárias mais recentes.
Por exemplo, se você quiser que apenas versões de patch sejam lançadas na sequência de lançamento, especifique a configuração
control-plane-patch,nodes-patch.
Terraform
Se você usa o Terraform para gerenciar sua sequência de lançamento, é possível designar quais tipos de upgrades você quer que o GKE faça nessa sequência adicionando ao bloco usado para criar a sequência de lançamento.
Adicione o seguinte campo ao bloco. Você pode adicionar o campo em qualquer lugar, exceto entre os blocos stages, que precisam ser consecutivos:
auto_upgrade_config {
rollout_creation_scope {
upgrade_types = [
UPGRADE_TYPES
]
}
}
Substitua UPGRADE_TYPES pela lista de upgrades a serem
realizados, que pode ser uma ou mais das seguintes opções (cada uma entre aspas):
"CONTROL_PLANE_PATCH": o GKE realiza upgrades automáticos do plano de controle do cluster para versões de patch mais recentes."CONTROL_PLANE_MINOR": o GKE realiza upgrades automáticos do plano de controle do cluster para versões secundárias mais recentes."NODE_PATCH": o GKE realiza upgrades automáticos de nós do cluster para versões de patch mais recentes."NODE_MINOR": o GKE realiza upgrades automáticos de nós do cluster para versões secundárias mais recentes.
Por exemplo, se você quiser que apenas versões de patch sejam lançadas na sequência
de lançamento, especifique a configuração
upgrade_types = ["CONTROL_PLANE_PATCH", "NODE_PATCH"].
Se você definir upgrade_types = [], o GKE não vai realizar upgrades de cluster na sequência de lançamento, exceto lançamentos para upgrades automáticos obrigatórios.
Para reverter ao comportamento padrão em que o GKE realiza todos os
tipos de upgrades de cluster na sequência de lançamento, especifique
a configuração upgrade_types = ["CONTROL_PLANE_PATCH", "CONTROL_PLANE_MINOR", "NODE_PATCH", "NODE_MINOR"]. Ou remova o bloco auto_upgrade_config da
configuração do Terraform.
Modificar uma sequência de lançamento
É possível modificar uma sequência de lançamento depois de criá-la. Modifique sua sequência de lançamento com as instruções a seguir, dependendo de como você está gerenciando a sequência.
gcloud
Se você usa a CLI gcloud para gerenciar sua sequência de lançamento, é possível editar o arquivo de configuração YAML em que ela foi definida. Por exemplo, é possível atualizar o tempo de imersão de uma etapa ou atualizar a etapa para mudar a ordem dos upgrades. Depois de editar o arquivo, aplique as mudanças.
Por exemplo, se você definiu a sequência de lançamento original em um arquivo chamado
rollout-sequence.yaml, edite o arquivo conforme necessário. Em seguida, execute o seguinte comando:
gcloud container fleet rolloutsequences update test-rollout-sequence \
--display-name="My Updated Rollout Sequence" \
--stage-config=rollout-sequence.yaml
Terraform
Se você usa o Terraform para gerenciar a sequência de lançamento, modifique o bloco que usou para criar a sequência de lançamento.
Ignorar um cluster em uma sequência de lançamento
É possível fazer com que o GKE ignore um cluster em uma sequência de lançamento. É possível ignorar um ou mais clusters em uma sequência de lançamento. Para mais informações, consulte Ignorar um cluster em uma sequência de lançamento.
Para que o GKE ignore um cluster em uma sequência de lançamento, siga estas etapas:
- Adicione um rótulo
ao cluster que você quer que o GKE ignore ou use um
rótulo existente. Por exemplo, é possível fazer com que o GKE ignore um rótulo como
statusou quando ele tem um valor específico, comostatus=quarantine. Defina a sequência de lançamento para ignorar clusters com esse rótulo. Para fazer isso, siga estas etapas, dependendo de como você gerencia a sequência de lançamento:
gcloud
Execute este comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \ --ignored-clusters-selector="resource.labels.LABEL_TO_IGNORE"Substitua:
ROLLOUT_SEQUENCE_NAME: o nome da sequência de lançamento.LABEL_TO_IGNORE: o nome do rótulo para clusters que o GKE precisa ignorar na sequência de lançamento.
Terraform
Se você usa o Terraform para gerenciar sua sequência de lançamento, adicione o campo a seguir ao bloco usado para criar a sequência de lançamento. Você pode adicionar o campo em qualquer lugar, exceto entre os blocos
stages, que precisam ser consecutivos:ignored_clusters_selector { label_selector = "resource.labels.LABEL_TO_IGNORE" }Substitua
LABEL_TO_IGNOREpelo nome do rótulo dos clusters que o GKE precisa ignorar na sequência de lançamento.
Estas instruções configuram o GKE para ignorar um tipo de rótulo na
sequência de lançamento. Se você quiser ignorar vários rótulos ou criar expressões mais
complexas para ignorar clusters com rótulos específicos, transmita
valores para esse campo usando a sintaxe de expressão CEL.
Todos os rótulos precisam usar o prefixo resource.labels..
Adicionar um cluster de volta a uma sequência de lançamento
Se você seguiu as instruções na seção anterior para o GKE ignorar um cluster em uma sequência de lançamento, é possível desfazer essa ação. Se você não quiser mais que o GKE ignore os clusters, remova o seletor de ignorar seguindo estas instruções, dependendo de como você gerencia a sequência de lançamento:
gcloud
Execute este comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--clear-ignored-clusters-selector
Substitua ROLLOUT_SEQUENCE_NAME pelo nome da
sequência de lançamento.
Esse comando redefine o seletor de ignorar para que o GKE não ignore nenhum cluster na sequência.
Terraform
Se você usa o Terraform para gerenciar a sequência de lançamento, remova o bloco
ignored_clusters_selector do bloco usado para criar
a sequência de lançamento.
Ou, se você não quiser que o GKE ignore um cluster específico, remova os rótulos do cluster.
Excluir uma sequência de lançamento
Para excluir uma sequência de lançamento, execute o seguinte comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Substitua:
ROLLOUT_SEQUENCE_NAMEcom o nome da sequência de lançamento.HOST_PROJECT_IDcom o ID do projeto host da sequência de lançamento.
Quando você exclui uma sequência de lançamento, todos os lançamentos em andamento dessa sequência são cancelados. Os clusters que faziam parte da sequência revertem ao comportamento padrão de upgrade automático do canal de lançamento inscrito.
Migrar uma sequência de lançamento para usar etapas personalizadas
Se você usa a versão de sequenciamento de lançamento baseada em frota, é possível migrar para uma sequência que usa etapas personalizadas criando um novo RolloutSequence que faz referência às suas frotas atuais. Esta versão da sequenciamento de lançamento não tem suporte para o console Cloud de Confiance .
Para migrar sua sequência de lançamento, siga estas etapas:
Se quiser, antes de migrar a sequência, faça uma cópia da configuração atual de sequência de lançamento. Para fazer uma cópia da configuração, faça uma destas ações:
- CLI gcloud: execute o comando para verificar o status de uma sequência de implantação baseada em frota. Salve a saída do comando.
- Terraform: salve a configuração do Terraform.
Recomendamos não excluir a sequência de implantação baseada em frota para facilitar a reversão para a versão anterior da sequência de implantação, se necessário. Não é necessário excluir a sequência de lançamento baseada em frota para que a sequência de lançamento com estágios personalizados funcione, porque o GKE obedece apenas à sequência de lançamento com estágios personalizados quando ambas existem.
Crie um projeto Cloud de Confiance by S3NS dedicado para hospedar sua sequência de lançamento. Normalmente, esse projeto não faz parte da sequência. Ou seja, ele não contém frotas ou clusters que fazem parte da sequência.
Se você quiser que a sequência de lançamento inclua clusters específicos em uma frota, adicione rótulos a esses clusters. Esta etapa é opcional.
Siga as instruções em Criar uma sequência de lançamento com etapas personalizadas.
Por exemplo, o manifesto a seguir, chamado
rollout-sequence-migrate.yaml, faz referência às frotas atuais em uma sequência de lançamento anterior. Esse manifesto descreve três estágios, incluindo um estágio decanaryna frotaprod:- 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
Imediatamente após a definição de um novo RolloutSequence para as frotas, o GKE começa
a fazer upgrade delas de acordo com a nova sequência e remove a configuração
anterior.
Migrar uma sequência de lançamento com estágios personalizados para a sequência de lançamento anterior
Esta seção descreve como reverter do sequenciamento de lançamentos com etapas personalizadas
para o modelo de sequenciamento de lançamentos baseado em frota. Esse processo envolve excluir
o novo RolloutSequence e restaurar a configuração original baseada em frota.
Evitar upgrade fora de ordem durante a migração
Para evitar upgrades não intencionais ou fora de ordem enquanto você reconfigura sua
sequência, aplique uma exclusão de
manutenção
aos seus clusters de produção. Essa etapa pausa temporariamente todos os upgrades automáticos
nesses clusters. Por exemplo, é possível configurar uma exclusão de manutenção do tipo no upgrades nos clusters de produção.
Excluir a sequência de lançamento
Exclua o objeto RolloutSequence que gerencia seus clusters. Essa exclusão
desativa o recurso de etapas personalizadas.
Para excluir o RolloutSequence, execute o seguinte comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME
Substitua ROLLOUT_SEQUENCE_NAME pelo nome da sua
sequência de lançamento.
Restaurar a configuração anterior da sequência de lançamento (sem etapas personalizadas)
Depois de excluir o RolloutSequence, é possível restaurar a configuração original
baseada em frota. Esse processo envolve recriar os recursos clusterupgrade com os parâmetros originais, incluindo os links upstreamFleet e os tempos de imersão para cada frota na sua sequência. Para mais informações, consulte Criar uma sequência de lançamento.
Remover as exclusões de manutenção
Depois de restaurar a configuração original de sequenciamento de lançamento com base em frota, remova a exclusão de manutenção que você aplicou na primeira etapa desta seção. O GKE retoma os upgrades automáticos, agora regidos pela sequência restaurada com base na frota.
A seguir
- Saiba mais sobre upgrades de cluster com sequenciamento de lançamento.