Esta página descreve como usar o Cloud Deploy para implementar a sua aplicação nos ambientes de tempo de execução de destino pretendidos. Antes de o fazer, tem de criar o pipeline de entrega e os alvos.
Antes de começar
Esta secção descreve os aspetos que tem de ter em vigor antes de poder implementar a sua aplicação através do Cloud Deploy.
Certifique-se de que a conta de serviço de execução tem as autorizações e as funções do IAM necessárias.
Crie o seu pipeline de entrega e segmentações.
O Cloud Deploy pode ser implementado no Google Kubernetes Engine, no Cloud Run, em clusters anexados do GKE e em alvos personalizados. A configuração de destino difere consoante o local de implementação.
Tenha as imagens e os manifestos dos contentores.
Precisa de uma ou mais imagens de contentores para implementar e um ou mais manifestos do Kubernetes (para implementar no GKE) ou ficheiros YAML de serviços (para implementar no Cloud Run).
Precisa de um pipeline de integração contínua ou de outro processo para criar e colocar as suas imagens. A sua ferramenta de CI pode ser o Cloud Build, o Jenkins ou qualquer outra ferramenta que resulte em imagens de contentores que possa fornecer ao pipeline de entrega do Cloud Deploy.
Ter um
skaffold.yamlficheiro de configuração.O Cloud Deploy chama
skaffold renderpara renderizar os manifestos do Kubernetes através deste ficheiro eskaffold applypara os implementar no seu destino. Para o fazer, o Skaffold requer, pelo menos, umskaffold.yamlmínimo. Pode obtê-lo de duas formas:Crie o seu.
Tenha em atenção que o ficheiro
skaffold.yamltem de referenciar oapiVersionque é suportado pelo Skaffold na primeira linha, como neste exemplo:`apiVersion: skaffold/v4beta7`Peça para o gerar.
Se ainda não tiver um ficheiro
skaffold.yaml, pode pedir ao Cloud Deploy para criar um para si. Este ficheiro é adequado para a integração, a aprendizagem ou a demonstração do Cloud Deploy e não deve ser usado para cargas de trabalho de produção.
Consulte o artigo Usar o Skaffold com o Cloud Deploy para ver mais detalhes. Além disso, o artigo Gerir manifestos no Cloud Deploy tem mais detalhes sobre a utilização do Skaffold e do Cloud Deploy com ferramentas de gestão de manifestos, como o Helm, o Kustomize e o kpt.
Configure o Cloud Deploy para o ambiente de tempo de execução da sua escolha
O Cloud Deploy pode implementar a sua aplicação em qualquer um dos seguintes ambientes de tempo de execução:
Invoque o pipeline de entrega para criar um lançamento
Depois de configurar o Cloud Deploy para implementação no seu tempo de execução, pode enviar a sua aplicação para implementação de acordo com o pipeline de entrega que criou.
Execute o processo de integração contínua (CI) normal, criando o artefacto ou os artefactos implementáveis.
Inicie o pipeline de fornecimento chamando o Cloud Deploy para criar um lançamento.
Execute o seguinte comando a partir do diretório que contém a configuração do Skaffold:
gcloud deploy releases create RELEASE_NAME --delivery-pipeline=PIPELINE_NAME --region=REGIONUma vez que este comando cria um ficheiro tar de todo o conteúdo do diretório e de quaisquer subdiretórios, é recomendável não executar este comando a partir do diretório principal ou raiz. Execute o comando a partir do diretório que contém a configuração do Skaffold ou inclua a opção
--source=, descrita mais adiante.Neste comando…
RELEASE_NAMEé um nome a atribuir a este lançamento. O nome tem de ser exclusivo entre todos os lançamentos desta pipeline de envio.Pode especificar nomes de lançamentos dinâmicos incluindo
'$DATE'ou'$TIME'ou ambos. Por exemplo, se invocar este comando às 15:07 UTC,'rel-$TIME'é resolvido comorel-1507.'$DATE'e'$TIME'têm de estar entre aspas simples e a hora é a hora UTC na máquina onde invoca o comando.PIPELINE_NAMEé o nome do pipeline de fornecimento que vai gerir a implementação desta versão através da progressão dos alvos. Este nome tem de corresponder ao camponamena definição do pipeline.REGIONé o nome da região na qual está a criar o lançamento, por exemplo,us-central1. Este campo é obrigatório.
Este comando carrega um ficheiro TAR com as suas configurações para um contentor do Cloud Storage e cria o lançamento. O Cloud Deploy também cria automaticamente uma implementação gradual e implementa a sua imagem no primeiro destino definido no pipeline de entrega.
Além dos parâmetros apresentados com este comando, pode incluir qualquer uma das seguintes opções:
--images=<name=path/name:$IMAGE_SHA>,<name=path/name:$IMAGE_SHA>Uma coleção de substituições do nome da imagem pelo caminho completo da imagem.
--build-artifacts=<path/file>Uma referência a um ficheiro de saída de artefactos de compilação do Skaffold, que pode ser transmitido para representar as substituições do caminho completo da imagem.
Estas duas opções são mutuamente exclusivas.
Também pode incluir uma das seguintes flags para que o Cloud Deploy
gere um ficheiro skaffold.yaml para si:
--from-k8s-manifest=K8S_MANIFESTA configuração do Skaffold gerada baseia-se no manifesto do Kubernetes que transmite esta flag. A utilização desta flag com a flag
--skaffold-fileou a flag--sourcegera um erro. Consulte o artigo Gerar o seuskaffold.yamlpara ver mais detalhes.--from-run-manifest=RUN_MANIFESTA configuração do Skaffold gerada baseia-se no YAML do serviço do Cloud Run que transmite esta flag. A utilização desta sinalização com a sinalização
--skaffold-fileou a sinalização--sourcegera um erro. Consulte o artigo Gerar o seuskaffold.yamlpara ver mais detalhes.
Estas duas opções são mutuamente exclusivas.
Também pode incluir um ficheiro .gcloudignore se existirem ficheiros no diretório que não quer incluir no ficheiro TAR.
Crie um lançamento a partir da Google Cloud consola
Pode usar a Google Cloud consola para criar um lançamento para um pipeline de entrega. Isto é útil para experimentar o Cloud Deploy, mas não é adequado para cargas de trabalho de produção.
O procedimento seguinte pressupõe que já criou um pipeline de entrega e um ou mais alvos. (Também pode usar a Google Cloud consola) para criar o seu pipeline de entrega.)
Na página Detalhes do pipeline de fornecimento, para um pipeline de fornecimento específico, clique em Criar lançamento.

No campo Escolha um contentor, cole ou escreva o caminho para a imagem do contentor que quer implementar. Também pode usar o contentor predefinido pré-preenchido neste campo para avaliação.
Também pode clicar em Selecionar para escolher uma imagem de contentor do Artifact Registry.
Indique um nome exclusivo para este lançamento no campo Nome do lançamento ou use o nome predefinido fornecido.
Indique um nome para a implementação no campo Nome da implementação ou use o nome predefinido.
Este nome é usado para a implementação no primeiro alvo desta versão. Para segmentações subsequentes, pode atribuir um nome à implementação na caixa de diálogo Promover ou no comando
gcloud deploy releases promote.Opcionalmente, inclua uma descrição para este lançamento no campo Descrição.
Em Detalhes da implementação, introduza um nome para a implementação do GKE ou o serviço do Cloud Run, ou use o nome predefinido fornecido.
Para o GKE, o Cloud Deploy gera o manifesto por si. Para o Cloud Run, o Cloud Deploy gera a definição do serviço, que é usada para criar o serviço.
Clique em Criar.

O Cloud Deploy usa o manifesto gerado ou a definição do serviço do Cloud Run e o skaffold.yaml gerado para criar a versão.
Altere o limite de tempo de implementação
Para implementações no GKE e em clusters anexados do GKE, existem três limites de tempo separados que afetam o tempo que o sistema aguarda que o Kubernetes comunique uma implementação estável:
O Cloud Build tem um limite de tempo de 1 hora nas operações que o Cloud Build realiza para o Cloud Deploy.
Pode alterar este limite de tempo na configuração do seu ambiente de execução.
O Skaffold tem um tempo limite de verificação do estado (
deploy.statusCheckDeadlineSeconds), que é o tempo, em segundos, de espera pela estabilização das implementações.A predefinição é 600 segundos (10 minutos). Para usar este limite de tempo,