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
eskaffold 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
Configure o Skaffold de acordo com as necessidades do seu pipeline.
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.yaml
ficheiro que descreva os manifestos a renderizar.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.
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 paradebug
na configuração do ambiente de execução de um alvo definindoverbose: true
.
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.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.