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 objetivos de GKE.
Antes de comenzar
Ten uno o más clústeres de GKE en los que realizar la implementación.
Si no tienes clústeres de GKE en los que realizar la implementación, puedes crearlas.
Asegúrate de que tu 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 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 de kind: Target
.
En la definición del destino, crea una estrofa gke
que apunte 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
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 realiza una implementación en un clúster de GKE.
El siguiente es un archivo skaffold.yaml
de ejemplo para implementar en una
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, debes proporcionar Cloud Deploy con uno o más manifiestos de Kubernetes, que son renderizados y, luego, aplicarse al destino o varios clústeres 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 ayudarte a crear manifiestos. También puedes usar Kustomize o Helm si tus manifiestos están basados en 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]
Donde URL
es la URL del proxy.
Implementa en un clúster privado
Puedes implementar tu aplicación en un clúster de GKE privado, utilizando cualquiera de estas 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:
-
Un clúster privado es un clúster nativo de la VPC cuyos nodos y Pods están aislados de forma predeterminada desde la Internet pública.
Si planeas usar la IP interna del destino del clúster privado, configura
internalIp
portrue
engke
en la configuración de destino En Cloud Build, crear un grupo de trabajadores privados que puedes usar para implementarlo 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
y paraVERIFY
Este es un ejemplo que usaRENDER
yDEPLOY
: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 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 sobre proyectos y permisos
Puedes configurar un destino para usar un grupo de trabajadores privados que pueda implementarse 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 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 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 destinos de GKE Enterprise y conecta la puerta de enlace
Puedes configurar un destino para implementar clúster privado de GKE con destinos de Anthos y Conectar puerta de enlace.
Este enfoque no requiere que uses una nube privada virtual conexiones de red.
¿Qué sigue?
Prueba la guía de inicio rápido: Implementa una aplicación en GKE
Invoca tu canalización de entrega para crear una versión
Obtén más información sobre cómo configurar 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.
Obtén más información sobre GKE.