Implantação Azul/Verde do OKE

Crie um pipeline de implantação usando a estratégia de release Azul e Verde 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 Azul/Verde. O nome de entrada NGINX deve ser definido no manifesto do Kubernetes. 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 definir os ambientes de implantação azul e verde, você deve criar dois namespaces no cluster do Kubernetes. Você não deve especificar namespaces nos manifestos do Kubernetes, pois eles são fornecidos na Console. Para obter mais informações sobre namespaces, consulte a documentação do Kubernetes.
Observação

Para reduzir o namespace inativo ou stand-by após a implantação, mantenha pelo menos uma réplica para evitar problemas.

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.

    1. Abra o menu de navegação e clique em Serviços do Desenvolvedor. Em DevOps, clique em Projetos.
    2. Selecione um projeto e um pipeline de implantação.
    3. Para adicionar um estágio ao pipeline, clique no ícone + e selecione Adicionar estágio.
    4. Para o tipo de estágio, selecione Estratégia Azul/Verde e clique em Próximo.
    5. Selecione OKE para o tipo de implantação.
    6. Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
    7. Para Ambiente, selecione um ambiente de cluster existente.
    8. Informe os namespaces existentes para o Namespace A e o Namespace B que está associado ao ambiente selecionado do OKE. Por exemplo, blue-env, green-env.

      Os namespaces são usados para definir os ambientes de implantação azul e verde no cluster do OKE.

    9. Clique em Selecionar Artefato e selecione um ou mais recursos de artefato no seu projeto 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.

    10. 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. O nome de entrada NGINX deve ser definido no manifesto do Kubernetes.

    11. Clique em Próximo.
    12. Validar a execução de implantação. Para validar, uma função personalizada é adicionada ao pipeline. Selecione Executar uma lógica personalizada por meio de uma função e informe os seguintes valores:
      1. Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
      2. 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.

      3. (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. Ao configurar o recurso de artefato DevOps, selecione Permitir parametrização. Marcar essa caixa de seleção garante que os placeholders sejam substituídos 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}"}
      4. 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.

      5. 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 ou false. Se o valor de retorno for true, 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.

      6. (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.

      Observação

      Se você não quiser validar a execução da implantação, selecione Nenhum.
    13. Você pode ativar ou desativar uma aprovação manual para a implantação. Para ativar uma aprovação, insira os seguintes valores:
      1. Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
      2. Digite o número de aprovadores.
      3. (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.

    14. 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 azul/verde do OKE. Elas podem incluir implantação azul/verde do OKE, função de chamada, aprovação e estágios de mudança de tráfego. 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.

  • Para criar um estágio azul/verde do OKE, execute o comando create-deploy-oke-blue-green-stage:

    oci devops deploy-stage create-deploy-oke-blue-green-stage

    Parâmetros obrigatórios:

    • --blue-green-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-blue-green-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 mudança de tráfego do balanceador de carga, execute o comando create-load-balancer-traffic-shift-stage:

    oci devops deploy-stage create-load-balancer-traffic-shift-stage

    Parâmetros obrigatórios:

    • --blue-backend-ips
    • --green-backend-ips
    • --load-balancer-config
    • --traffic-shift-target
    • --rollout-policy
    • --pipeline-id
    • --stage-predecessor-collection

    Para obter ajuda para este comando:

    oci devops deploy-stage create-load-balancer-traffic-shift-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 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 azul/verde do Kubernetes Engine (OKE): OKE_BLUE_GREEN_DEPLOYMENT
    • OKE - estágio de mudança de tráfego azul/verde: OKE_BLUE_GREEN_TRAFFIC_SHIFT
    • Estágio de função de chamada: INVOKE_FUNCTION
    • Estágio de aprovação manual: MANUAL_APPROVAL