Este documento descreve como configurar e usar implantações canário personalizadas para implantar seus aplicativos em todos os tipos de destino usando o Cloud Deploy.
Como as implantações canário personalizadas funcionam
Ao implantar usando uma estratégia de implantação canário personalizada, o Cloud Deploy não modifica seus manifestos para facilitar a configuração de balanceamento de tráfego escolhida. Em vez disso, você é responsável por fornecer manifestos que são aplicados ao tempo de execução de destino para cada fase canário.
Verifique se você tem as permissões necessárias
Além das outras permissões do Identity and Access Management necessárias para usar o Cloud Deploy, você precisa das seguintes permissões para realizar outras ações que podem ser necessárias para uma implantação canário:
clouddeploy.rollouts.advanceclouddeploy.rollouts.ignoreJobclouddeploy.rollouts.cancelclouddeploy.rollouts.retryJobclouddeploy.jobRuns.getclouddeploy.jobRuns.listclouddeploy.jobRuns.terminate
Consulte Papéis e permissões do IAM para mais informações sobre quais papéis disponíveis incluem essas permissões.
Prepare seu skaffold.yaml
O arquivo skaffold.yaml define como os manifestos são renderizados e implantados.
Em uma implantação canário personalizada, você é responsável por definir perfis associados a cada fase canário para facilitar a configuração de balanceamento de tráfego escolhida. Esses perfis são mapeados para fases na configuração da estratégia do pipeline de entrega.
Confira a seguir um exemplo de configuração skaffold.yaml usada por um canary
personalizado:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: canary-25
manifests:
rawYaml:
- canary-25-resources.yaml
- name: canary-50
manifests:
rawYaml:
- canary-50-resources.yaml
- name: stable
manifests:
rawYaml:
- stable-resources.yaml
Configurar um canário personalizado
Com a configuração canário personalizada, especifique o seguinte na definição do pipeline de entrega:
Nomes das fases de lançamento
Em um canary totalmente automatizado, o Cloud Deploy nomeia as fases para você (
canary-25,canary-75,stable, por exemplo). Com um canary personalizado, você pode dar qualquer nome a cada fase, desde que seja exclusivo entre todas as fases desse estágio e respeite as restrições de ID de recurso. mas o nome da fase final (100%) precisa serstable.Metas de porcentagem para cada fase
Especifique as porcentagens separadamente, por fase.
Perfis do Skaffold a serem usados na fase
É possível usar um perfil do Skaffold separado para cada fase, o mesmo perfil ou qualquer combinação. Cada perfil pode usar uma definição de serviço do Cloud Run diferente. Também é possível usar mais de um perfil para uma determinada fase. O Cloud Deploy combina os dois.
Se há um job de verificação para a fase
Se há jobs de pré ou pós-implantação para a fase
Elementos de configuração canário personalizados
O YAML a seguir mostra a configuração das fases de implantação canary totalmente personalizada:
strategy:
canary:
# Custom configuration for each canary phase
customCanaryDeployment:
phaseConfigs:
- phaseId: "PHASE1_NAME"
percentage: PERCENTAGE1
profiles: [ "PROFILE_NAME" ]
verify:
tasks: [TASKS]
predeploy:
tasks: [TASKS]
postdeploy:
tasks: [TASKS]
- …
- phaseId: "stable"
percentage: 100
profiles: [ "LAST_PROFILE_NAME" ]
verify:
tasks: [TASKS]
predeploy:
tasks: [TASKS]
postdeploy:
tasks: [TASKS]
Neste YAML
PHASE1_NAMEÉ o nome da fase. Cada nome de fase precisa ser exclusivo.
[ "PROFILE_NAME" ]É o nome do perfil a ser usado na fase. Você pode usar o mesmo perfil para cada fase, um diferente para cada uma ou qualquer combinação. Além disso, é possível especificar mais de um perfil. O Cloud Deploy usa todos os perfis especificados, além do perfil ou manifesto usado pelo estágio geral.
stableA fase final precisa ser chamada de
stable.PERCENTAGE1É a porcentagem a ser implantada na primeira fase. Cada fase precisa ter um valor de porcentagem exclusivo, que precisa ser um número inteiro (não
10.5, por exemplo), e as fases precisam estar em ordem crescente.Para ativar a verificação de implantação, configure a seção
verify. Se você fizer isso, um jobverifyserá adicionado à fase.É possível ativar os hooks de pré-implantação configurando a estrofe
predeploy. Se você fizer isso, um trabalhopredeployserá adicionado à fase.É possível ativar os hooks postdeploy configurando a stanza
postdeploy. Se você fizer isso, um trabalhopostdeployserá adicionado à fase.A propriedade
tasksemverify,predeployepostdeployconsiste em uma ou mais tarefas a serem executadas como parte desse job. Todas as tarefas configuradas serão executadas em sequência na ordem em que foram definidas.
A porcentagem da última fase precisa ser 100. As fases são executadas na ordem em que você as configura nesta seção customCanaryDeployment, mas se os valores percentuais não estiverem em ordem crescente, o comando para registrar o pipeline de entrega vai falhar com um erro.
Observe que a configuração de um canary personalizado não inclui uma seção runtimeConfig. Se você incluir runtimeConfig, ele será considerado um
canário automatizado personalizado.
A seguir
Confira o guia de início rápido da implantação canário.
Saiba como gerenciar o ciclo de vida dos rollouts canários.
Saiba mais sobre a implantação paralela.
Saiba mais sobre as estratégias de implantação do Cloud Deploy.