Implementarla en un clúster de Google Kubernetes Engine

En este documento, se describe cómo implementar tus aplicaciones en Google Kubernetes Engine entre los clústeres de Kubernetes.

Cloud Deploy te permite implementar tus cargas de trabajo basadas en contenedores en cualquier Google Kubernetes Engine clúster. Todas las funciones de Cloud Deploy son compatibles cuando realizas implementaciones en destinos de GKE.

Antes de comenzar

En este archivo skaffold.yaml, la estrofa deploy incluye kubectl, que indica que Skaffold renderiza y, luego, implementa en Kubernetes (GKE). Los manifiestos que usas para esta aplicación que aparece allí.

Crea tu configuración de destino

Cada destino se puede configurar en el archivo YAML de tu canalización de entrega o en un archivo separado. Además, puedes configurar más de un destino en el mismo archivo, pero deben estar en diferentes estrofas kind: Target.

En la definición de destino, crea una estrofa gke para apuntar al clúster de GKE:

La sintaxis para especificar un clúster de GKE es la siguiente:

gke:
 cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]

Este identificador de recursos de GKE usa los siguientes elementos:

  • [project_name] es el nombre del proyecto de Google Cloud en el que estás ejecutando este clúster.

    No es necesario que el clúster en el que realizas la implementación esté en el mismo proyecto que tu canalización de entrega.

  • [location] es la región en la que se creó el clúster.

  • [cluster_name] es el nombre que se asignó al clúster cuando se creó.

    Puedes encontrar este nombre en la lista de clústeres para tu proyecto, en Consola de Google Cloud

    lista de clústeres en la consola de Google Cloud

El siguiente es un ejemplo de configuración de destino, que apunta a un clúster:

      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

Crea tu configuración de Skaffold

En esta sección, se proporciona y explica un ejemplo de una configuración simple de Skaffold para usar cuando se implementa en un clúster de GKE.

El siguiente es un ejemplo de archivo skaffold.yaml para la implementación en un clúster de GKE:

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

Usa Skaffold con Cloud Deploy y se describe en más detalle cómo usar Skaffold con tu canalización de entrega.

Prepara tus manifiestos de Kubernetes

Para implementar tu aplicación en GKE, le proporcionas a Cloud Deploy uno o más manifiestos de Kubernetes, que se renderizan y, luego, se aplican al clúster o a los clústeres objetivo para implementar tu aplicación.

Si no tienes esos manifiestos, créalos antes de intentar realizar la implementación con una canalización de entrega de Cloud Deploy.

Puedes usar Kustomize o Helm para crear manifiestos. También puedes usar Kustomize o Helm si tu Los manifiestos se crean a partir de plantillas y deben renderizarse.

Revisión general

Ahora que tienes los manifiestos de Kubernetes, la configuración de skaffold.yaml y tus definiciones de destino de Cloud Deploy, y registraste tus destinos como recursos de Cloud Deploy, invoca tu canalización de entrega para crear una versión y avanzar en el progreso de los objetivos definidos en la canalización.

Implementa con un proxy

Puedes especificar un proxy para tu clúster de GKE de destino. Esto es para organizaciones que están configuradas para acceder a sus clústeres solo a través de un proxy.

Para ello, agrega una propiedad proxyUrl a la estrofa gke en la configuración de destino:

gke:
 cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
 proxyUrl: [URL]

En el ejemplo anterior, URL es la URL del proxy.

Implementa en un clúster privado

Puedes implementar tu aplicación en un clúster de GKE privado con una de las siguientes dos opciones:

Usa una red de nube privada virtual

Puedes configurar un destino para implementar clúster privado de GKE Conexión a una red de nube privada virtual:

  1. Crea tu clúster privado

    Un clúster privado es un clúster nativo de VPC cuyos nodos y Pods están aislados de Internet público de forma predeterminada.

    Si planeas usar la IP interna del destino del clúster privado, configura internalIp por true en gke en la configuración de destino

  2. En Cloud Build, crea un grupo de trabajadores privado que puedas usar para implementar en este clúster privado.

  3. Configura el entorno de ejecución para usar ese grupo privado.

    Debes usar este grupo para RENDER. También puedes usarlo para DEPLOY y para VERIFY Este es un ejemplo que usa RENDER y DEPLOY:

    executionConfigs:
    - usages:
      - RENDER
      - DEPLOY
      workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
    

Consulta Cómo acceder a clústeres privados de GKE desde grupos privados de Cloud Build con el servicio de identidad para GKE y Cómo acceder a clústeres privados de GKE con grupos privados de Cloud Build para obtener más información.

Consideraciones sobre proyectos y permisos

Puedes configurar un destino para que use un grupo de trabajadores privado que se pueda implementar en un clúster privado. Pero hay algunos aspectos para tener en cuenta si los recursos se encuentran en diferentes proyectos.

  • Cuando Cloud Deploy y el grupo de trabajadores están en proyectos diferentes

Para comunicarse con un grupo privado que tenga acceso a una VPC y que esté en proyecto diferente al de tu destino, la herramienta El agente de servicio necesita los permisos necesarios para comunicarse con ese proyecto.

La cuenta de servicio de ejecución también necesita permisos para acceder al bucket de Cloud Storage.

  • Cuando el grupo de trabajadores y el clúster están en proyectos diferentes

Si el clúster de GKE privado se encuentra en un proyecto diferente del el grupo de trabajadores privados, cuenta de servicio de ejecución requiere permisos suficientes para comunicarse con el proyecto en el que se encuentra el clúster.

Usa objetivos de GKE Enterprise y conecta la puerta de enlace

Puedes configurar un destino para implementarlo en un clúster de GKE privado con destinos de Anthos y Puerta de enlace de conexión.

Este enfoque no requiere que uses una nube privada virtual conexiones de red.

¿Qué sigue?