En este tema se explica cómo crear una carga de trabajo en GKE en AWS y exponerla internamente en tu clúster.
Antes de empezar
Antes de empezar a usar GKE en AWS, asegúrate de haber completado las siguientes tareas:
- Completa los requisitos previos.
- Instala un servicio de gestión.
- Crea un clúster de usuarios.
- En tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu clúster de usuarios. Sustituye CLUSTER_NAME por el nombre de tu clúster de usuario.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Puedes seguir estos pasos con kubectl
o con la consola Google Cloud si te has autenticado con Connect.
Si usas la Google Cloud consola, ve a la sección Lanzar un despliegue de NGINX.
Para conectarte a tus recursos de GKE en AWS, sigue estos pasos. Selecciona si tienes una VPC de AWS (o una conexión directa a tu VPC) o si has creado una VPC específica al crear tu servicio de gestión.
VPC ya creada
Si tienes una conexión directa o VPN a una VPC, omite la línea env HTTP_PROXY=http://localhost:8118
de los comandos de este tema.
VPC dedicada
Cuando creas un servicio de gestión en una VPC dedicada, GKE en AWS incluye un host bastión en una subred pública.
Para conectarte a tu servicio de gestión, sigue estos pasos:
Cambia al directorio con tu configuración de GKE en AWS. Has creado este directorio al instalar el servicio de gestión.
cd anthos-aws
Para abrir el túnel, ejecuta la secuencia de comandos
bastion-tunnel.sh
. El túnel reenvía alocalhost:8118
.Para abrir un túnel al host bastion, ejecuta el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando quieras cerrar la conexión, detén el proceso con Control+C o cierra la ventana.
Abre una terminal nueva y ve al directorio
anthos-aws
.cd anthos-aws
Comprueba que puedes conectarte al clúster con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
La salida incluye la URL del servidor de la API del servicio de gestión.
Lanzar un despliegue de NGINX
En esta sección, crearás una implementación del servidor web NGINX llamado nginx-1
.
kubectl
Usa
kubectl create
para crear la implementación.env HTTPS_PROXY=http://localhost:8118 \ kubectl create deployment --image nginx nginx-1
Usa
kubectl
para obtener el estado de la implementación. Ten en cuenta elNAME
del Pod.env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
Consola
Para lanzar un despliegue de NGINX con la Google Cloud consola, sigue estos pasos:
Ve al menú Cargas de trabajo de GKE en laGoogle Cloud consola.
Haz clic en Desplegar.
En Editar contenedor, selecciona Imagen de contenedor que ya existe para elegir una imagen de contenedor disponible en Container Registry. Rellena el campo Ruta de la imagen con la imagen del contenedor que quieras usar y su versión. En esta guía de inicio rápido, usa
nginx:latest
.Haz clic en Hecho y, a continuación, en Continuar. Aparecerá la pantalla Configuración.
Puedes cambiar el nombre de la aplicación y el espacio de nombres de Kubernetes de tu implementación. En esta guía de inicio rápido, puedes usar el nombre de la aplicación
nginx-1
y el espacio de nombresdefault
.En el menú desplegable Cluster (Clúster), selecciona tu clúster de usuarios. De forma predeterminada, el primer clúster de usuarios se llama
cluster-0
.Haz clic en Desplegar. GKE on AWS inicia tu implementación de NGINX. Aparecerá la pantalla Detalles de la implementación.
Exponer tus pods
En esta sección se muestra cómo hacer una de las siguientes acciones:
Expón tu implementación internamente en tu clúster y confirma que está disponible con
kubectl port-forward
.Expón tu implementación desde la consola a las direcciones permitidas por el grupo de seguridad de tu grupo de nodos. Google Cloud
kubectl
Expón el puerto 80 del Deployment al clúster con
kubectl expose
.env HTTPS_PROXY=http://localhost:8118 \ kubectl expose deployment nginx-1 --port=80
Ahora se puede acceder al despliegue desde el clúster.
Redirige el puerto
80
de la implementación al puerto8080
de tu máquina local conkubectl port-forward
.env HTTPS_PROXY=http://localhost:8118 \ kubectl port-forward deployment/nginx-1 8080:80
Conéctate a
http://localhost:8080
concurl
o con tu navegador web. Aparecerá la página web predeterminada de NGINX.curl http://localhost:8080
Consola
Ve al menú Cargas de trabajo de GKE en la Google Cloud consola.
En la pantalla Detalles de la implementación, haga clic en Exponer. Aparecerá la pantalla Exponer un despliegue.
En la sección Asignación de puertos, deja el puerto predeterminado (
80
) y haz clic en Hecho.En Tipo de servicio, selecciona Balanceador de carga. Para obtener más información sobre otras opciones, consulta Publicar servicios (ServiceTypes) en la documentación de Kubernetes.
Haz clic en Exponer. Aparecerá la pantalla Detalles del servicio. GKE on AWS crea un balanceador de carga elástico clásico para el servicio.
Haga clic en el enlace External Endpoints (Endpoints externos). Si el balanceador de carga está listo, aparecerá la página web predeterminada de NGINX.
Consulta tu despliegue en la Google Cloud consola
Si tu clúster está conectado a Google Cloud la consola, puedes ver tu Deployment en la página Cargas de trabajo de GKE. Para ver tu carga de trabajo, sigue estos pasos:
En tu navegador, ve a la página Workloads (Cargas de trabajo) de Google Kubernetes Engine.
Visita la página Cargas de trabajo de Google Kubernetes Engine.
Aparecerá la lista de cargas de trabajo.
Haz clic en el nombre de tu carga de trabajo
nginx-1
. Aparecerá la pantalla Detalles de la implementación.En esta pantalla, puede obtener información sobre su implementación, ver y editar la configuración de YAML, y llevar a cabo otras acciones de Kubernetes.
Para obtener más información sobre las opciones disponibles en esta página, consulta el artículo Desplegar una aplicación sin reconocimiento del estado en la documentación de GKE.
Limpieza
Para eliminar tu implementación de NGINX, usa kubectl delete
o la consola Google Cloud .
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
Consola
Ve al menú de páginas Servicios y entrada de la Google Cloud consola.
Busca tu servicio NGINX y haz clic en su nombre. De forma predeterminada, el nombre es
nginx-1-service
. Aparecerá la pantalla Detalles del servicio.Haz clic en
Eliminar y confirma que quieres eliminar el Servicio. GKE on AWS elimina el balanceador de carga.Ve a la página Workloads de Google Kubernetes Engine.
Visita la página Cargas de trabajo de Google Kubernetes Engine.
Aparecerá la lista de cargas de trabajo.
Haz clic en el nombre de tu carga de trabajo
nginx-1
. Aparecerá la pantalla Detalles de la implementación.Haz clic en
Eliminar y confirma que quieres eliminar la implementación. GKE on AWS elimina el Deployment.
Siguientes pasos
Crea un balanceador de carga interno o externo con uno de los siguientes servicios:
- Balanceador de carga clásico y de red de AWS
- Balanceador de carga de aplicación de AWS
- Ingress con Cloud Service Mesh
Puedes usar otros tipos de cargas de trabajo de Kubernetes con GKE en AWS. Consulta la documentación de GKE para obtener más información sobre cómo desplegar cargas de trabajo.