Este tema le muestra cómo crear una carga de trabajo en GKE en AWS y exponerla internamente en su clúster.
Antes de empezar
Antes de comenzar a usar GKE en AWS, asegúrese de haber realizado las siguientes tareas:
- Complete los prerrequisitos .
- Instalar un servicio de gestión .
- Crear un clúster de usuarios .
- Desde su directorio
anthos-aws
, useanthos-gke
para cambiar el contexto a su clúster de usuarios. Reemplace CLUSTER_NAME con el nombre de su clúster de usuarios.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Puede realizar estos pasos con kubectl
o con el Google Cloud consola si se ha autenticado con Connect . Si está utilizando el Google Cloud consola, salte a Iniciar una implementación de NGINX .
Para conectarse a sus recursos de GKE en AWS, siga estos pasos. Seleccione si ya tiene una VPC de AWS (o una conexión directa a su VPC) o si creó una VPC dedicada al crear su servicio de administración.
VPC existente
Si tiene una conexión directa o VPN a una VPC existente, omita la línea env HTTP_PROXY=http://localhost:8118
de los comandos de este tema.
VPC dedicada
Cuando crea un servicio de administración en una VPC dedicada, GKE en AWS incluye un host bastión en una subred pública.
Para conectarse a su servicio de administración, realice los siguientes pasos:
Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .
cd anthos-aws
Para abrir el túnel, ejecute el script
bastion-tunnel.sh
. El túnel redirecciona alocalhost:8118
.Para abrir un túnel al host bastión, ejecute el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando esté listo para cerrar la conexión, detenga el proceso usando Control+C o cerrando la ventana.
Abra una nueva terminal y cámbiese a su 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 API del servicio de administración.
Lanzar una implementación de NGINX
En esta sección, creará una implementación del servidor web NGINX llamado nginx-1
.
kubectl
Utilice
kubectl create
para crear la implementación.env HTTPS_PROXY=http://localhost:8118 \ kubectl create deployment --image nginx nginx-1
Use
kubectl
para obtener el estado de la implementación. Anote elNAME
del pod.env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
Consola
Para lanzar una implementación de NGINX con el Google Cloud consola, realice los siguientes pasos:
Visita el menú Cargas de trabajo de GKE enGoogle Cloud consola.
Haga clic en Implementar .
En Editar contenedor , seleccione Imagen de contenedor existente para elegir una imagen de contenedor disponible en Container Registry. Complete la ruta de la imagen con la imagen de contenedor que desea usar y su versión. Para esta guía de inicio rápido, use
nginx:latest
.Haga clic en Listo y luego en Continuar . Aparecerá la pantalla de configuración .
Puedes cambiar el nombre de la aplicación y el espacio de nombres de Kubernetes de tu implementación. Para 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 Clúster , seleccione su clúster de usuarios. De forma predeterminada, su primer clúster de usuarios se llama
cluster-0
.Haga clic en Implementar . GKE en AWS iniciará su implementación de NGINX. Aparecerá la pantalla de detalles de la implementación .
Exponiendo tus pods
Esta sección muestra cómo realizar una de las siguientes acciones:
Exponga su implementación internamente en su clúster y confirme que esté disponible con
kubectl port-forward
.Exponga su implementación desde el Google Cloud consola a las direcciones permitidas por el grupo de seguridad de su grupo de nodos.
kubectl
Exponga el puerto 80 de 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 dentro del clúster.
Reenvíe el puerto
80
de la implementación al puerto8080
en su máquina local conkubectl port-forward
.env HTTPS_PROXY=http://localhost:8118 \ kubectl port-forward deployment/nginx-1 8080:80
Conéctese a
http://localhost:8080
concurl
o su navegador web. Aparecerá la página web predeterminada de NGINX.curl http://localhost:8080
Consola
Visita el menú Cargas de trabajo de GKE en Google Cloud consola.
En la pantalla de detalles de la implementación , haga clic en "Exponer" . Aparecerá la pantalla "Exponer una implementación" .
En la sección Asignación de puertos , deje el puerto predeterminado (
80
) y haga clic en Listo .En Tipo de servicio , seleccione Balanceador de carga . Para obtener más información sobre otras opciones, consulte Servicios de publicación (Tipos de servicio) en la documentación de Kubernetes.
Haga clic en "Exponer" . Aparecerá la pantalla de detalles del servicio . GKE en AWS crea un balanceador de carga elástico clásico para el servicio.
Haga clic en el enlace " Puntos finales externos" . Si el balanceador de carga está listo, aparecerá la página web predeterminada de NGINX.
Ver su implementación en Google Cloud consola
Si su clúster está conectado a Google Cloud En la consola , puedes ver tu implementación en la página Cargas de trabajo de GKE. Para ver tu carga de trabajo, sigue estos pasos:
En su navegador, visite la página Cargas de trabajo de Google Kubernetes Engine.
Visita la página de cargas de trabajo de Google Kubernetes Engine
Aparece la lista de cargas de trabajo.
Haga clic en el nombre de su carga de trabajo,
nginx-1
. Aparecerá la pantalla de detalles de implementación .Desde esta pantalla, puede obtener detalles sobre su implementación, ver y editar la configuración de YAML y realizar otras acciones de Kubernetes.
Para obtener más información sobre las opciones disponibles en esta página, consulte Implementar una aplicación sin estado en la documentación de GKE.
Limpieza
Para eliminar su implementación de NGINX, use kubectl delete
o el Google Cloud consola.
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
Consola
Visita el menú de la página de Servicios e Ingreso en la Google Cloud consola.
Busca tu servicio NGINX y haz clic en su nombre . Por defecto, el nombre es
nginx-1-service
. Aparece la pantalla de detalles del servicio .Haga clic en Eliminar
confirme que desea eliminar el servicio. GKE en AWS elimina el balanceador de carga.Visita la página de cargas de trabajo de Google Kubernetes Engine.
Visita la página de cargas de trabajo de Google Kubernetes Engine
Aparece la lista de cargas de trabajo.
Haga clic en el nombre de su carga de trabajo,
nginx-1
. Aparecerá la pantalla de detalles de implementación .Haga clic en Eliminar
confirme que desea eliminar la implementación. GKE en AWS elimina la implementación.
¿Que sigue?
Cree un balanceador de carga interno o externo utilizando uno de los siguientes servicios:
- Balanceador de carga de red y clásico de AWS
- Balanceador de carga de aplicaciones 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 la implementación de cargas de trabajo .