Implantar em um cluster do Google Kubernetes Engine

Neste documento, descrevemos como implantar seus aplicativos no Google Kubernetes Engine. clusters.

O Cloud Deploy permite implantar cargas de trabalho baseadas em contêiner em qualquer Google Kubernetes Engine (em inglês) aglomerado. Todos os recursos do Cloud Deploy têm suporte quando você implanta no do GKE.

Antes de começar

Neste arquivo skaffold.yaml, a estrofe deploy inclui kubectl, que indica que o Skaffold está renderizando e implantando no Kubernetes (GKE). Os manifestos usados para esse aplicativo são listadas abaixo.

Crie a configuração de destino

Cada destino pode ser configurado em seu YAML de pipeline de entrega ou pode estar em um arquivo separado. Além disso, você pode configurar mais de um destino no mesmo arquivo, mas precisam estar em estrofes de kind: Target diferentes.

Na definição do destino, crie uma estrofe gke para apontar para o Cluster do GKE:

A sintaxe para especificar um cluster do GKE é a seguinte:

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 projeto do Google Cloud em que você está executando este cluster.

    O cluster em que você está implantando não precisa estar no mesmo projeto que o o pipeline de entrega.

  • [location] é a região em que o cluster foi criado.

  • [cluster_name] é o nome dado ao cluster quando ele foi criado.

    É possível encontrar esse nome na lista de clusters do seu projeto, no console do Google Cloud.

    lista de clusters no console do Google Cloud

Confira a seguir um exemplo de configuração de destino, que aponta para um cluster:

      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 configuração simples do Skaffold usar ao implantar em um cluster do GKE.

Veja a seguir um arquivo skaffold.yaml de exemplo para implantação em um Cluster do GKE:

apiVersion: skaffold/v4beta7
kind: Config
metadata: 
  name: gke-application
manifests:
  rawYaml:
  - deployment.yaml
deploy:
  kubectl: {}

Como usar o Skaffold com o Cloud Deploy descreve em mais detalhes como usar o Skaffold com o pipeline de entrega.

Preparar manifestos do Kubernetes

Para implantar seu aplicativo no GKE, forneça o Cloud Deploy com um ou mais manifestos do Kubernetes, que são renderizado e aplicado ao destino. cluster ou clusters para implantar seu aplicativo.

Se você não tiver esses manifestos, crie-os antes de tentar implantar usando um pipeline de entrega do Cloud Deploy.

Você pode usar o Kustomize ou o Helm para criar manifestos. Você também pode usar Kustomize ou Helm se manifestos são criados a partir de um modelo e precisam ser renderizados.

Como tudo funciona em conjunto

Agora que você tem os manifestos do Kubernetes, a configuração do skaffold.yaml, e suas definições de destino do Cloud Deploy e registrou seus destinos como recursos do Cloud Deploy, invocar o pipeline de entrega para criar uma versão e avançar na progressão de destinos definidos no pipeline.

Implantar usando um proxy

É possível especificar um proxy para o cluster de destino do GKE. Isso destina-se a organizações que acessam os clusters por um proxy .

Para isso, adicione uma propriedade proxyUrl à estrofe 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 seu aplicativo em um cluster particular do GKE, usando uma destas duas opções:

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:

  1. Crie seu cluster particular

    Trata-se de um cluster nativo de VPC em que os nós e os pods são isolados por padrão da Internet pública.

    Se você planeja usar o IP interno do destino do cluster particular, defina internalIp para true em gke na configuração de destino.

  2. No Cloud Build, crie um pool de workers particulares que possa ser usado para implantar nesse cluster particular.

  3. Configure o ambiente de execução para usar esse pool privado.

    Use este pool para RENDER. Também é possível usá-la para DEPLOY e para VERIFY. Veja um exemplo que usa RENDER e DEPLOY:

    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

Configure um destino para usar um pool de workers privados que pode ser implantado em uma cluster particular. Mas há algumas coisas que devem ser observadas se os recursos estiverem em diferentes projetos.

  • 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 seu destino, o Cloud Deploy necessidades do agente de serviço permissões suficientes para se comunicar com ele.

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 do GKE Enterprise e conectar gateway

É possível configurar um destino para implantar em um cluster particular do GKE usando destinos do Anthos; e gateway de conexão.

Essa abordagem não exige o uso de uma nuvem privada virtual conexões de rede.

A seguir