Use o Skaffold com o Cloud Deploy

Este artigo descreve o Skaffold, como e por que motivo o Cloud Deploy o usa, e o que tem de fazer para que funcione para si.

O Cloud Deploy usa o Skaffold para operações de renderização e implementação. Também pode usá-lo para desenvolvimento, compilação, testes locais e para funcionalidades de implementação avançadas. No entanto, o Cloud Deploy requer apenas uma configuração do Skaffold que identifique os manifestos a renderizar e aplicar.

O que é o Skaffold?

O Skaffold é uma ferramenta de linha de comandos que permite o desenvolvimento contínuo de aplicações nativas do Kubernetes. Pode usar o Skaffold para configurar um espaço de trabalho de desenvolvimento local para usar com pipelines de entrega contínua do Cloud Deploy.

O Skaffold inclui as seguintes funcionalidades:

  • Dá-lhe controlo discreto das atividades do pipeline de CI/CD (criar, renderizar, implementar testes, etc.).

  • É útil como ferramenta de desenvolvimento local.

  • Os perfis do Skaffold permitem-lhe diferenciar entre diferentes ambientes, com diferentes configurações de compilação, teste e implementação, tudo no mesmo ficheiro de configuração.

Por que motivo o Cloud Deploy usa o Skaffold?

O Google Cloud Deploy usa o Skaffold para separar as ferramentas de renderização do pipeline de fornecimento. O pipeline de implementação define simplesmente a progressão de destino para destino, enquanto a configuração do Skaffold define que manifestos são renderizados e como. Isto torna a renderização de manifestos flexível sem afetar a forma como define o seu pipeline de fornecimento.

Seguem-se algumas das vantagens que o Skaffold oferece quando o usa com o Cloud Deploy:

  • Integração fácil

    Comece com um ciclo de desenvolvimento local. Pode partilhar o seu ficheiro skaffold.yaml com a sua equipa, o que pode permitir a consistência e ajudar os novos membros da equipa a começar.

  • Controlo consistente da renderização em diversos alvos de implementação

    Pode usar perfis do Skaffold, com renderização e implementação diferentes para alvos diferentes.

  • Escolha de ferramentas de renderização sem comprometer a forma como os pipelines de fornecimento são definidos

    A utilização do Skaffold permite que o Cloud Deploy separe a definição do pipeline de implementação dos detalhes de composição. Esta separação permite-lhe experimentar os seus manifestos sem interromper o pipeline de fornecimento.

  • Processo de renderização coerente

    A origem de renderização e os seus contentores são usados para gerar manifestos renderizados.

  • Verificações de funcionamento da implementação

    O Skaffold executa-as e o Cloud Deploy usa-as.

Como é que o Cloud Deploy usa o Skaffold?

  • A origem da renderização e as referências a imagens de contentores são transmitidas para o Cloud Deploy quando cria uma versão.

    Como parte da criação da versão, o Cloud Deploy chama o Cloud Build, que, por sua vez, invoca skaffold diagnose e skaffold render para renderizar o manifesto ou os manifestos usando essa origem de renderização e essas imagens.

  • Pode usar perfis do Skaffold para diferenciar manifestos que vão ser aplicados a diferentes destinos.

  • O Cloud Deploy suporta módulos estáticos do Skaffold.

  • Durante a implementação, o Cloud Deploy chama skaffold apply para aplicar o manifesto ou os manifestos renderizados ao cluster de destino.

  • O Cloud Deploy não suporta a utilização de outros implementadores para implementar a sua aplicação, a menos que use alvos personalizados. No entanto, pode usar ferramentas como o Helm ou o Kustomize como renderizadores. Para saber como o Cloud Deploy faz a implementação sem usar implementadores específicos (como o Helm), consulte a Arquitetura de serviços.

Faça com que o Skaffold funcione para si

  1. Configure o Skaffold de acordo com as necessidades do seu pipeline.

    1. Determine as necessidades do seu pipeline de fornecimento.

      Quantos alvos vai ter? A renderização e a implementação são iguais para cada um. Se a configuração for a mesma para cada destino na progressão, não precisa de usar perfis do Skaffold. Só precisa de um skaffold.yamlficheiro que descreva os manifestos a renderizar.

    2. Se aplicável, crie um perfil do Skaffold para cada destino

      Defina isto no seu ficheiro skaffold.yaml e associe-o na sequência de progressão da definição da pipeline de fornecimento.

      Consulte a documentação do Skaffold para mais informações sobre os perfis do Skaffold. Além disso, o documento Gerir manifestos no Cloud Deploy inclui exemplos de configurações de perfis.

    3. Defina o nível de verbosidade do registo do Skaffold

      Por predefinição, o nível de registo do Skaffold está definido como warn. Pode alterar esta opção para debug na configuração do ambiente de execução de um alvo definindo verbose: true.

  2. Associe o Cloud Deploy ao seu sistema de integração contínua.

    No final do processo de CI, transmita o skaffold.yaml, a origem da renderização e as imagens do contentor a serem preenchidas no manifesto renderizado.

  3. Opcional: configure o seu ciclo de desenvolvimento local com o Skaffold.

    A utilização do Skaffold para desenvolvimento é opcional no Cloud Deploy. A única coisa necessária para o Cloud Deploy funcionar é um ficheiro skaffold.yaml que identifique os manifestos a renderizar.

O que se segue?

  • Visite o site do Skaffold para saber como funciona e o que pode fazer por si.

  • Saiba como o Cloud Deploy seleciona a versão do Skaffold a usar, quando a versão do Skaffold muda e como determinar que versão está atualmente em uso.

  • Saiba como usar perfis do Skaffold em conjunto com ferramentas avançadas de gestão de manifestos, como Helm, Kustomize e kpt.

  • Experimente o tutorial de perfis do Skaffold.