Neste documento, descrevemos como implantar aplicativos em clusters do Google Kubernetes Engine.
O Cloud Deploy permite implantar cargas de trabalho baseadas em contêineres em qualquer cluster do Google Kubernetes Engine. Todos os recursos do Cloud Deploy são compatíveis quando você implanta em destinos do GKE.
Antes de começar
Tenha um ou mais clusters do GKE para implantar.
Se você não tiver clusters do GKE para implantar, você pode criá-los.
Verifique se a conta de serviço de execução tem os papéis e permissões necessários.
Neste arquivo skaffold.yaml, a seção deploy inclui kubectl, que indica que o Skaffold está renderizando e implantando no Kubernetes (GKE). Os manifestos usados para esse aplicativo estão listados abaixo.
Criar a configuração de destino
Cada destino pode ser configurado no YAML do pipeline de entrega ou em um arquivo separado. Além disso, é possível configurar mais de um destino no mesmo arquivo, mas eles precisam estar em seções kind: Target diferentes.
Os destinos precisam ser definidos no mesmo projeto e região que o pipeline de entrega. No entanto, os clusters em que os destinos são implantados podem estar em projetos e regiões diferentes, desde que a conta de serviço tenha acesso a esses projetos.
Na definição de destino, crie uma seção gke para apontar para o cluster do GKE:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Esse identificador de recurso do GKE usa os seguintes elementos:
[
project_name] é o nome do Google Cloud projeto em que você está executando esse cluster.O cluster em que você está implantando não precisa estar no mesmo projeto que o pipeline de entrega.
[
location] é a região em que o cluster foi criado.[
cluster_name] é o nome atribuído ao cluster quando ele foi criado.É possível encontrar esse nome na lista de clusters do projeto, no Google Cloud console.

Confira a seguir um exemplo de configuração de destino, apontando para um cluster do GKE:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development cluster
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
Criar a configuração do Skaffold
Esta seção fornece e explica um exemplo de uma configuração simples do Skaffold para usar ao implantar em um cluster do GKE.
Confira a seguir um exemplo de arquivo skaffold.yaml para implantação em um cluster do GKE:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
Usar o Skaffold com o Cloud Deploy descreve com mais detalhes como usar o Skaffold com o pipeline de entrega.
Preparar os manifestos do Kubernetes
Para implantar o aplicativo no GKE, forneça ao Cloud Deploy um ou mais manifestos do Kubernetes, que são renderizados e aplicados ao cluster ou clusters de destino para implantar o aplicativo.
Se você não tiver esses manifestos, crie-os antes de tentar implantar usando um pipeline de entrega do Cloud Deploy.
É possível usar o Kustomize ou o Helm para ajudar a criar manifestos. Você também pode usar o Kustomize ou o Helm se os manifestos forem modelados e precisarem ser renderizados.
Como tudo funciona em conjunto
Agora que você tem os manifestos do Kubernetes, a configuração skaffold.yaml,
e as definições de destino do Cloud Deploy, e
registrou seus destinos
como recursos do Cloud Deploy, é possível
invocar o pipeline de entrega
para criar uma versão e progredir na progressão de destinos definidos
no pipeline.
Implantar usando um proxy
É possível especificar um proxy para o cluster do GKE de destino. Isso é para organizações configuradas para acessar os clusters somente por um proxy HTTP.
Para fazer isso, adicione uma propriedade proxyUrl à seção gke na configuração de destino:
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
proxyUrl: [URL]
Em que URL é o URL do proxy.
Implantar em um cluster particular
É possível implantar o aplicativo em um cluster particular do GKE usando uma das três opções:
Usar um endpoint DNS
Essa é a maneira mais simples de se conectar a um cluster particular.
Defina
dnsEndpointcomotrueemgkena configuração de destino.Se o cluster não tiver um endpoint baseado em IP configurado, pule esta etapa. O Cloud Deploy se conectará ao endpoint DNS por padrão, já que ele é o único endpoint do plano de controle.
Usar uma rede de nuvem privada virtual
É possível configurar um destino para implantar em um cluster particular do GKE conectado a uma rede da nuvem privada virtual:
-
Um cluster particular é um cluster nativo de VPC cujos nós e pods são isolados por padrão da Internet pública.
Se você planeja usar o IP interno do destino do cluster particular, defina
internalIpcomotrueemgkena configuração de destino. No Cloud Build, crie um pool de workers particulares que possa ser usado para implantar nesse cluster particular.
Configure o ambiente de execução para usar esse pool privado.
Use este pool para
RENDER. Também é possível usá-lo paraDEPLOYeVERIFY. Confira um exemplo que usaRENDEReDEPLOY:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Consulte Acessar clusters particulares do GKE em pools particulares do Cloud Build usando o Identity Service para GKE e Acessar clusters particulares do GKE com pools particulares do Cloud Build para mais informações.
Considerações sobre projetos e permissões
É possível configurar um destino para usar um pool de workers particular que possa ser implantado em um cluster particular. No entanto, há algumas coisas a serem observadas se os recursos estiverem em projetos diferentes.
- Quando o Cloud Deploy e o pool de workers estão em projetos separados
Para se comunicar com um pool privado que tenha acesso a uma VPC e que esteja em um projeto diferente do destino, o agente de serviço do Cloud Deploy precisa de permissões suficientes para se comunicar com esse projeto.
A conta de serviço de execução também precisa de permissões para acessar o bucket do Cloud Storage.
- Quando o pool de workers e o cluster estão em projetos separados
Se o cluster particular do GKE estiver em um projeto diferente do pool de workers particulares, a conta de serviço de execução exigirá permissões suficientes para se comunicar com o projeto em que o cluster está.
Usar destinos de clusters anexados do GKE e o Connect Gateway
É possível configurar um destino para implantar em um cluster particular do GKE com destinos que usam clusters anexados do GKE e o Connect Gateway.
Essa abordagem não exige o uso de uma nuvem privada virtual ou conexões de rede privada virtual.
A seguir
Confira o guia de início rápido: implantar um aplicativo no GKE
Invocar o pipeline de entrega para criar uma versão
Saiba mais sobre como configurar destinos do Cloud Deploy
Saiba mais sobre como usar o Skaffold com o Cloud Deploy
Saiba mais sobre o GKE