En este tema, se muestra cómo crear una carga de trabajo en GKE on AWS y exponerla en tu clúster de forma interna.
Antes de comenzar
Antes de comenzar a usar GKE on AWS, completa las siguientes tareas:
- Completar los requisitos
- Instalar un servicio de administración
- Crear un clúster de usuario
- Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu clúster de usuario.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Reemplaza CLUSTER_NAME por el nombre de tu clúster de usuario.
Puedes seguir estos pasos con kubectl
o con la consola de Google Cloud si estás autenticado con Connect.
Si usas la consola de Google Cloud, ve a Inicia una implementación de NGINX.
Para conectarte a tus recursos de GKE on AWS, realiza las siguientes instrucciones. Selecciona si tienes una VPC de AWS existente (o conexión directa a tu VPC) o si creaste una VPC dedicada cuando creaste tu servicio de administración.
VPC existente
Si tienes una conexión directa o de VPN con una VPC existente, omite la línea env HTTP_PROXY=http://localhost:8118
de los comandos en este tema.
VPC dedicada
Cuando creas un servicio de administración en una VPC dedicada, GKE on AWS incluye un host de bastión en una subred pública.
Para conectarte al servicio de administración, realiza los siguientes pasos:
Cambia al directorio con la configuración de GKE en AWS. Creaste este directorio cuando instalaste el servicio de administració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 de bastión, ejecuta el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando estés listo para cerrar la conexión, detén el proceso mediante Control+C o cierra la ventana.
Abre una terminal nueva y cambia a tu directorio de
anthos-aws
.cd anthos-aws
Verifica que puedas conectarte al clúster con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
El resultado incluye la URL para el servidor de API del servicio de administración.
Inicia una implementación de NGINX
En esta sección, crearás una implementación del servidor web NGINX llamada 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. Anota elNAME
del pod.env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
Console
Para iniciar una implementación NGINX con la consola de Google Cloud, sigue estos pasos:
Visita el menú Cargas de trabajo de GKE en la consola de Google Cloud.
Haz clic en Implementar.
En Editar contenedor, selecciona Imagen de contenedor existente para elegir una imagen de contenedor disponible en Container Registry. Completa la Ruta de acceso a la imagen con la imagen de contenedor que deseas usar y su versión. Para esta guía de inicio rápido, usa
nginx:latest
.Haz clic en Listo y, luego, en Continuar. Aparecerá la pantalla Configuración.
Puedes cambiar el Nombre de la aplicación de tu implementación y el Espacio de nombres de Kubernetes. Para esta guía de inicio rápido, puedes usar el nombre de aplicación
nginx-1
y el espacio de nombresdefault
En el menú desplegable Clúster, selecciona tu clúster de usuario. De forma predeterminada, tu primer clúster de usuario se llama
cluster-0
.Haz clic en Implementar. GKE on AWS inicia la implementación de NGINX. Aparecerá la pantalla Detalles de la implementación.
Expón tus pods
Esta sección te muestra cómo realizar una de las acciones siguientes:
Expón la implementación internamente en tu clúster y confirma que esté disponible con
kubectl port-forward
.Expón tu implementación de la consola de Google Cloud a las direcciones permitidas por el grupo de seguridad del grupo de nodos.
kubectl
Expón el puerto 80 la implementación al clúster con
kubectl expose
.env HTTPS_PROXY=http://localhost:8118 \ kubectl expose deployment nginx-1 --port=80
Ahora se puede acceder a la implementación desde el clúster.
Reenvía el puerto
80
en la implementación al puerto8080
en 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 a tu navegador web. Aparecerá la página web predeterminada de NGINX.curl http://localhost:8080
Console
Visita el menú Cargas de trabajo de GKE en la consola de Google Cloud.
En la pantalla Detalles de la implementación, haz clic en Exponer. Aparecerá la pantalla Exponer una implementación.
En la sección Asignación de puertos, deja el puerto predeterminado (
80
) y haz clic en Listo.En Tipo de servicio, selecciona Balanceador de cargas. Para obtener más información sobre otras opciones, consulta Servicios de publicación (ServiceTypes) en la documentación de Kubernetes.
Haz clic en Exponer. Aparecerá la pantalla Detalles del servicio. GKE en AWS crea un balanceador de cargas clásico Elastic para el servicio.
Haz clic en el vínculo Extremos externos. Si el balanceador de cargas está listo, aparecerá la página web predeterminada de NGINX.
Visualiza la implementación en la consola de Google Cloud
Si el clúster está conectado a la consola de Google Cloud, puedes ver la implementación en la página Cargas de trabajo de GKE. Para ver la carga de trabajo, sigue estos pasos:
En tu navegador, visita la página Cargas de trabajo de Google Kubernetes Engine.
Visitar 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.Desde esta pantalla, puedes obtener detalles sobre la implementación, ver y editar la configuración YAML, y realizar otras acciones de Kubernetes.
Para obtener más información sobre las opciones disponibles en esta página, consulta Implementa una aplicación sin estado en la documentación de GKE.
Limpieza
Para borrar tu implementación de NGINX, usa kubectl delete
o la consola de Google Cloud.
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
Console
Visita el menú de la página Services e Ingress en la consola de Google Cloud.
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
Borrar y confirma que deseas borrar el servicio. GKE on AWS borra el balanceador de cargas.Visita la página de Cargas de trabajo de Google Kubernetes Engine.
Visitar 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
Borrar y confirma que deseas borrar la implementación. GKE on AWS borra la implementación.
Próximos pasos
Crea un balanceador de cargas interno o externo mediante uno de los siguientes servicios:
- AWS Classic y Balanceador de cargas de red
- Balanceador de cargas de aplicaciones de AWS
- Ingress con Anthos Service Mesh
Puedes usar otros tipos de cargas de trabajo de Kubernetes con GKE on AWS. Consulta la documentación de GKE para obtener más información sobre la Implementación de cargas de trabajo.