En este documento, se describe cómo implementar tus aplicaciones en clústeres de Google Kubernetes Engine.
Cloud Deploy te permite implementar tus cargas de trabajo basadas en contenedores en cualquier clúster de Google Kubernetes Engine. Todas las funciones de Cloud Deploy son compatibles cuando implementas en destinos de GKE.
Antes de comenzar
Tener uno o más clústeres de GKE en los que realizar la implementación
Si no tienes ningún clúster de GKE en el que realizar la implementación, puedes crearlos.
Asegúrate de que tu cuenta de servicio de ejecución tenga los roles y permisos que necesita.
En este archivo skaffold.yaml, la sección deploy incluye kubectl, lo que indica que Skaffold renderiza para Kubernetes (GKE) y realiza la implementación en él. Y los manifiestos que usas para esta aplicación se enumeran allí.
Crea tu configuración de destino
Cada destino se puede configurar en el archivo YAML de la canalización de entrega o en un archivo separado. También puedes configurar más de un destino en el mismo archivo, pero deben estar en diferentes secciones kind: Target.
Los destinos deben definirse en el mismo proyecto y la misma región que la canalización de entrega. Sin embargo, los clústeres en los que se implementan los destinos pueden estar en diferentes proyectos y regiones, siempre y cuando la cuenta de servicio tenga acceso a esos proyectos.
En la definición del destino, crea una sección gke para que apunte al clúster de GKE:
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 Google Cloud en el que ejecutas este clúster.El clúster en el que realizas la implementación no necesita estar 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 le asignó al clúster cuando se creó.Puedes encontrar este nombre en la lista de clústeres de tu proyecto, en la consola deGoogle Cloud .

A continuación, se muestra un ejemplo de configuración de destino que apunta a un clúster de 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
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.
A continuación, se muestra un ejemplo de un 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: {}
En Cómo usar Skaffold con Cloud Deploy, se describe con 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, debes proporcionar a Cloud Deploy uno o más manifiestos de Kubernetes, que se renderizan y, luego, se aplican a los clústeres de destino para implementar tu aplicación.
Si no tienes esos manifiestos, créalos antes de intentar 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 tus manifiestos se basan en plantillas y deben renderizarse.
Revisión general
Ahora que tienes tus manifiestos de Kubernetes, tu configuración de skaffold.yaml y tus definiciones de destino de Cloud Deploy, y que registraste tus destinos como recursos de Cloud Deploy, puedes invocar tu canalización de entrega para crear una versión y hacer que avance por la progresión de destinos definidos en la canalización.
Implementa con un proxy
Puedes especificar un proxy para tu clúster de GKE de destino. Esto es para las organizaciones que están configuradas para acceder a sus clústeres solo a través de un proxy HTTP.
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]
Donde URL es la URL del proxy.
Implementa en un clúster privado
Puedes implementar tu aplicación en un clúster privado de GKE con una de las siguientes tres opciones:
Usa un extremo de DNS
Esta es la forma más sencilla de conectarse a un clúster privado.
Establece
dnsEndpointentrueengkeen la configuración de destino.Si tu clúster no tiene configurado un extremo basado en IP, puedes omitir este paso. Cloud Deploy se conectará al extremo de DNS de forma predeterminada, ya que es el único extremo del plano de control.
Usa una red de nube privada virtual
Puedes configurar un destino para realizar la implementación en un clúster privado de GKE conectado a una red de nube privada virtual de la siguiente manera:
-
Un clúster privado es un clúster nativo de la VPC cuyos nodos y Pods están aislados de forma predeterminada de la Internet pública.
Si planeas usar la IP interna del destino del clúster privado, establece
internalIpentrueengkeen la configuración de destino. En Cloud Build, crea un grupo de trabajadores privados que puedas usar para realizar la implementación en este clúster privado.
Configura el entorno de ejecución para que use ese grupo privado.
Debes usar este grupo para
RENDER. También puedes usarlo paraDEPLOYy paraVERIFY. A continuación, se muestra un ejemplo que usaRENDERyDEPLOY:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Consulta Accede a clústeres privados de GKE desde grupos privados de Cloud Build con el servicio de identidad para GKE y Accede a clústeres privados de GKE con grupos privados de Cloud Build para obtener más información.
Consideraciones sobre el proyecto y los permisos
Puedes configurar un destino para que use un grupo de trabajadores privado que se pueda implementar en un clúster privado. Sin embargo, debes tener en cuenta algunas cosas si los recursos se encuentran en proyectos diferentes.
- 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 un proyecto diferente de tu objetivo, el agente de servicio de Cloud Deploy necesita permisos suficientes 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 privado de GKE se encuentra en un proyecto diferente del grupo de trabajadores privados, la cuenta de servicio de ejecución requiere permisos suficientes para comunicarse con el proyecto en el que se encuentra el clúster.
Usa destinos de clústeres conectados de GKE y la puerta de enlace de conexión
Puedes configurar un destino para realizar la implementación en un clúster privado de GKE con destinos que usen clústeres adjuntos de GKE y puerta de enlace de Connect.
Este enfoque no requiere que uses una nube privada virtual ni conexiones de red privada virtual.
¿Qué sigue?
Prueba la guía de inicio rápido: Implementa una aplicación en GKE
Invoca tu canalización de entrega para crear un lanzamiento
Más información para configurar destinos de Cloud Deploy
Obtén más información para usar Skaffold con Cloud Deploy
Obtén información sobre los entornos de ejecución de Cloud Deploy.
Más información sobre GKE