En este documento, se describe cómo implementar tus aplicaciones en los 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 realizas una implementación 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 clústeres de GKE para implementar, puedes crearlos.
Asegúrate de que la cuenta de servicio de ejecución tenga los roles y permisos que necesita.
En este archivo skaffold.yaml
, la estrofa deploy
incluye kubectl
, que indica que Skaffold se renderiza en Kubernetes (GKE) y se implementa en él. Los manifiestos que usas para esta aplicación
se enumeran a continuación.
Crea la configuración de destino
Cada destino puede configurarse en el YAML de la canalización de entrega o puede estar en un archivo independiente. Además, puedes configurar más de un destino en el mismo archivo, pero deben estar en diferentes estrofas de kind: Target
.
En la definición del 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 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 de Google Cloud.
El siguiente es 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.
El siguiente es un archivo skaffold.yaml
de ejemplo 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 Usa Skaffold con Cloud Deploy, se describe en más detalle cómo usar Skaffold con la 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 los tienes, créalos antes de intentar implementarlos con una canalización de entrega de Cloud Deploy.
Puedes usar Kustomize o Helm para ayudarte a crear manifiestos. También puedes usar Kustomize o Helm si tus manifiestos tienen plantillas y se deben procesar.
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 registraste tus destinos como recursos de Cloud Deploy, puedes invocar tu canalización de entrega para crear una versión y hacer que avance en el progreso de los destinos definidos en la canalización.
Implementa en un clúster privado
Puedes implementar tu aplicación en un clúster de GKE privado mediante cualquiera de estas dos opciones:
Usar una red de nube privada virtual
Puedes configurar un destino para implementarlo en un clúster de GKE privado conectado a una red de nube privada virtual:
-
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
internalIp
comotrue
engke
en la configuración de destino. En Cloud Build, crea un grupo privado de trabajadores que puedas usar para implementar en este clúster privado.
Configura el entorno de ejecución para usar ese grupo privado.
Debes usar este grupo para
RENDER
. También puedes usarlo paraDEPLOY
yVERIFY
. En el siguiente ejemplo, se usanRENDER
yDEPLOY
:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Consulta Accede a clústeres de GKE privados desde grupos privados de Cloud Build mediante Identity Service para GKE y Accede a clústeres de GKE privados con grupos privados de Cloud Build para obtener más información.
Consideraciones del proyecto y los permisos
Puedes configurar un destino para que use un grupo privado de trabajadores que pueda implementarse en un clúster privado. Sin embargo, debes tener en cuenta algunos aspectos si los recursos están en proyectos diferentes.
- Cuando Cloud Deploy y el grupo de trabajadores están en proyectos diferentes
Para comunicarse con un grupo privado que tiene acceso a una VPC y que se encuentra en un proyecto diferente al de destino, 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 de GKE privado está 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 GKE Enterprise y conecta la puerta de enlace
Puedes configurar un destino para implementarlo en un clúster de GKE privado mediante destinos de Anthos y la puerta de enlace de conexión.
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 para implementar una aplicación en GKE.
Invoca tu canalización de entrega para crear una versión
Obtén más información sobre la configuración de destinos de Cloud Deploy
Obtén más información sobre cómo usar Skaffold con Cloud Deploy.
Obtén información sobre los entornos de ejecución de Cloud Deploy.
Más información sobre GKE