Implantação Canário do OKE
Crie um pipeline de implantação usando a estratégia de release Canário para o Kubernetes Engine (OKE).
Pré-requisitos
Os pré-requisitos são os seguintes:
- Tenha um pipeline de implantação, um ambiente de cluster do Kubernetes para implantação e artefatos. Os artefatos podem ser definidos em linha ou localizados no Artifact Registry.
- Como o cluster do OKE não tem um controlador de entrada por padrão, um controlador de entrada NGINX deve ser configurado para a estratégia de implantação Canário. Um controlador de entrada é um aplicativo do Kubernetes que roteia o tráfego com base na especificação de entrada. O controlador de entrada NGINX monitora recursos de entrada para balanceamento de carga. O tráfego é transferido da preparação para o ambiente de produção, atualizando o recurso de entrada. Para obter mais informações, consulte Configurando um Controlador de Entrada em um Cluster.
Para criar grupos dinâmicos e políticas para pipelines de implantação, consulte Políticas de Pipeline de Implantação. Para obter mais detalhes, consulte Políticas do Serviço IAM do DevOps.
Para acessar DevOps usando a Console, a API REST e a CLI do Oracle Cloud, consulte Acessando DevOps.
- Abra o menu de navegação e clique em Serviços do Desenvolvedor. Em DevOps, clique em Projetos.
- Selecione um projeto e um pipeline de implantação.
- Para adicionar um estágio ao pipeline, clique no ícone + e selecione Adicionar estágio.
- Para o tipo de estágio, selecione Estratégia Canário e clique em Próximo.
- Selecione OKE para o tipo de implantação.
- Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
- Para Ambiente, selecione um ambiente de cluster existente no qual o tráfego canário é transferido.
- Informe o Namespace canário. Por exemplo,
canary-env
.O namespace é usado para definir o ambiente de implantação canário no cluster do OKE.
- Clique em Selecionar Artefato e selecione um ou mais recursos de artefato no seu projeto do DevOps.
O serviço DevOps executa uma aplicação do servidor Kubernetes dos artefatos de manifesto do Kubernetes na ordem em que eles aparecem na Console. Você também pode remover artefatos para selecionar outro ou reordenar a lista de artefatos. A remoção de um artefato no estágio do pipeline não exclui o recurso de artefato do seu projeto. Para obter mais informações sobre aplicação do servidor Kubernetes, consulte Aplicação do Servidor.
- Informe o nome de entrada NGINX. Por exemplo,
ingress-nginx
.Este é o nome do recurso de entrada do seu aplicativo. O serviço DevOps modifica a anotação neste recurso de entrada para realizar a estratégia de implantação.
- Clique em Próximo.
- Você pode optar por validar a execução da implantação ou optar por não validar selecionando Nenhum.
Para validar o aplicativo, uma função personalizada é adicionada ao pipeline. Selecione Executar uma lógica personalizada por meio de uma função. Informe os seguintes valores:
- Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
- Para Ambiente, selecione uma função existente a ser chamada.
O campo Nome da função somente para leitura exibe a função que é chamada no pipeline.
- (Opcional) Para selecionar e adicionar artefatos ao estágio, clique em Selecionar Artefato.
Selecione um recurso de artefato existente no seu projeto do DevOps. O artefato deve ser um tipo de arquivo genérico (universal). Os parâmetros no artefato devem estar no formato JSON e podem ter placeholders. Marque a caixa de seleção Permitir parâmetro ao configurar o recurso de artefato DevOps para substituir os placeholders pelo valor do argumento durante a implantação. Para obter mais informações, consulte Configurando Parâmetros.
Este é um exemplo do conteúdo do artefato genérico para especificar dois parâmetros definidos pelo usuário e seus valores:- Parâmetros:
test_name
,app_version
- Valores:
{"test_name":"verify_production", "app_version":"${app_version}"}
- Parâmetros:
- Para Modo de execução do estágio, selecione a execução assíncrona ou síncrona.
Se você selecionar Executar de forma assíncrona, o serviço chamará a função, mas não aguardará a conclusão da função. Ao selecionar Executar de forma síncrona, o serviço chama a função e aguarda a conclusão da função.
- Selecione para desativar ou ativar a validação.
Se a validação estiver ativada, o serviço verificará o valor de retorno da função. O valor de retorno é uma string literal UTF-8,
true
oufalse
. Se o valor de retorno fortrue
, o estágio será marcado como Bem-sucedido; caso contrário, o estágio será marcado como Falha.Se a validação estiver desativada, o serviço não verificará o valor de retorno.
A validação só ocorrerá se você tiver selecionado a opção "Executar sincronicamente" para o modo de execução do estágio.
- (Opcional) Para adicionar tags ao pipeline, clique em Mostrar opções de tag. Tag é um sistema de metadados que permite organizar e rastrear os recursos de sua tenancy.
Você pode selecionar um namespace de tag ou uma tag de formato livre foi adicionada. Informe a chave e o valor da tag correspondentes. Você pode adicionar várias tags.
- Clique em Próximo.
- Informe um nome e uma descrição opcional para o estágio Mudar tráfego para transferir parte do tráfego para o ambiente canário.
- Informe o Limite de Rampa em porcentagem para especificar o tráfego máximo a ser transferido. O valor deve estar entre 1 e 25.
Por exemplo, se o limite de rampa for 20, 20% do tráfego será transferido para o ambiente canário.
- Clique em Próximo.
- Digite um nome e uma descrição para o estágio de Aprovação manual. A adição de uma descrição é opcional.
- Informe o número de aprovadores e clique em Próximo.
- Digite um nome e uma descrição para o estágio Canal de produção. A adição de uma descrição é opcional.
- Para Ambiente de produção, selecione um ambiente de cluster existente que seja usado para implantar o aplicativo validado no ambiente canário.
- Informe o Namespace de produção.
- Para fazer rollback automaticamente da implantação para a última versão bem-sucedida se o estágio falhar, marque a caixa de seleção Rollback automático.
- (Opcional) Para adicionar tags ao pipeline, clique em Mostrar opções de tag. Tag é um sistema de metadados que permite organizar e rastrear os recursos de sua tenancy.
Para obter mais informações, consulte Tags de Recursos
- Para adicionar o estágio ao pipeline, clique em Adicionar.
Uma janela modal é aberta exibindo o status de várias configurações de estágio que fazem parte da estratégia de implantação canário do OKE. Elas incluem estágios de implantação canário, mudança de tráfego, aprovação e implantação de produção. Se a validação não for bem-sucedida, você poderá verificar a mensagem de erro específica de cada estágio com falha e executar a ação corretiva.
Se a validação for bem-sucedida, você poderá executar o pipeline de implantação ou adicionar mais estágios sequencialmente ou em paralelo ao pipeline, conforme necessário.
Observação
Para a primeira implantação do canário do OKE, você encontrará uma mensagem de erro "serviço temporariamente indisponível" durante a execução da implantação, depois que o aplicativo for implantado no ambiente canário. Esse é um comportamento esperado, pois o recurso de entrada no ambiente de produção ainda não existe. Você pode ignorar esta mensagem e avançar com a implantação, pois o erro é resolvido no estágio de produção.Para criar um estágio canário do OKE, execute o comando
create-deploy-oke-canary-stage
:oci devops deploy-stage create-deploy-oke-canary-stage
Parâmetros obrigatórios:
--canary-strategy
--kubernetes-manifest-artifact-ids
--oke-cluster-environment-id
--pipeline-id
--stage-predecessor-collection
Para obter ajuda para este comando:
oci devops deploy-stage create-oke-canary-stage -h
Para criar um estágio de função de chamada, execute o comando
create-invoke-function-stage
:oci devops deploy-stage create-invoke-function-stage
Parâmetros obrigatórios:
--function-environment-id
--is-async
--is-validation-enabled
--pipeline-id
--stage-predecessor-collection
Para obter ajuda para este comando:
oci devops deploy-stage create-invoke-function-stage -h
Para criar um estágio de aprovação manual, execute o comando
create-manual-approval-stage
:oci devops deploy-stage create-manual-approval-stage
Parâmetros obrigatórios:
--approval-policy
--pipeline-id
--stage-predecessor-collection
Para obter ajuda para este comando:
oci devops deploy-stage create-manual-approval-stage -h
Para criar um estágio de aprovação canário do OKE, execute o comando
create-oke-canary-approval-stage
:oci devops deploy-stage create-oke-canary-approval-stage
Parâmetros obrigatórios:
--oke-canary-traffic-shift-stage-id
--approval-policy
--pipeline-id
--stage-predecessor-collection
Para obter ajuda para este comando:
oci devops deploy-stage create-oke-canary-approval-stage -h
Para obter todos os comandos para
deploy-stage
:oci devops deploy-stage -h
Para criar um estágio, use a operação
CreateDeployStage
. Dependendo dos estágios que você deseja adicionar ao pipeline, selecione os seguintes valores para o tipo de estágio:- Estágio de implantação canário do Kubernetes Engine (OKE:
OKE_CANARY_DEPLOYMENT
- Estágio de função de chamada:
INVOKE_FUNCTION
- Estágio de mudança de tráfego canário do OKE:
OKE_CANARY_TRAFFIC_SHIFT
- Estágio de aprovação canário do OKE:
OKE_CANARY_APPROVAL
- Estágio de implantação canário do Kubernetes Engine (OKE: