Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Kubernetes multi-cloud con Google Anthos y AWS (parte 1)

By Mike SparrSep 19, 20203 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

¿Por qué alguien querría correr GKE sobre AWS? Es una pregunta válida y las razones cambian de una empresa a otra. Algunos casos de uso habituales son:

  • tolerancia a fallos con una estrategia multi-cloud activo-activo
  • aprovechar créditos de proveedores y centralizar la administración
  • migrar de una nube a otra con el mínimo downtime
  • sacarle partido a la infraestructura y al expertise que ya tienes mientras mejoras la experiencia con k8s
  • creación de clusters más rápida (5–7 minutos frente a los más de 20 minutos típicos de EKS)

Sea cual sea el motivo, vamos a ver cómo desplegar Google Kubernetes Engine (GKE) sobre AWS usando Anthos GKE.

Esta es la primera entrega de una serie de 3 partes sobre Anthos GKE de Google:

Arquitectura

Google Anthos GKE corriendo sobre Amazon Web Services

Node pools y autoescalado sencillo de k8s en AWS

A EKS, el servicio gestionado de Kubernetes de Amazon, le faltan muchas funcionalidades que sí ofrece GKE, el servicio gestionado de Google. Más allá de su UI y de las operaciones simplificadas para actualizar el control plane y los nodos worker, una de las funciones más populares es el autoescalado y los node pools de Google. Ahora ya no tienes que renunciar a nada.

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSNodePool
metadata:
  name: cluster-0-pool-0
spec:
  clusterName: cluster-0
  version: 1.16.9-gke.12
  region: us-east-2
  subnetID: subnet-XXXXXXXX
  minNodeCount: 3
  maxNodeCount: 5
  instanceType: t3.medium
  keyName: gke-XXXXXXX-keypair
  iamInstanceProfile: gke-XXXXXXXX-nodepool
  maxPodsPerNode: 100
  securityGroupIDs:
  - sg-XXXXXXXX
  rootVolume:
    sizeGiB: 10

Vista en kubectl de los nodos corriendo GKE sobre instancias de AWS

Interfaz de línea de comandos (CLI)

Anthos incluye una interfaz de línea de comandos (CLI) llamada anthos-gke, con una funcionalidad parecida a la del CLI gcloud, pero que además genera scripts de Terraform (lo veremos a fondo en la parte 2 de esta serie). Con esta herramienta puedes alternar entre el control plane y los clusters como se muestra a continuación.

Control plane

Cluster de prueba (cluster-0)

Gestión empresarial de contenedores (ECM)

Tradicionalmente, cuando una empresa quería centralizar la administración de sus clusters de Kubernetes recurría a soluciones ECM de proveedores como Redhat OpenShift, VMWare Tanzu, Docker Enterprise o Rancher Labs. El problema es que cada una suele venir con sus propias limitaciones o con un fuerte vendor lock-in.

Administración de clusters locales y remotos desde una única Google Cloud Console

Con Anthos de Google puedes registrar cualquier cluster de Kubernetes instalando un pequeño workload llamado gke-connect-agent, ya sea on-prem, en otra nube o incluso corriendo sobre la propia infraestructura de Google. Así puedes interactuar con cualquier cluster y monitorearlo desde la cloud console de Google Kubernetes Engine. Los clusters pueden ser autogestionados o gestionados en la nube, e incluso algunas de las soluciones ECM mencionadas antes.

Ahora veámoslo todo en acción… es tan fácil como 1–2–3

1\. Despliega una app en AWS desde la Cloud Console de GCP

Aunque la mayor parte de la gestión de Kubernetes se hace con la herramienta de línea de comandos kubectl o desde un pipeline de CI/CD, también puedes desplegar workloads en tus clusters de GKE sobre AWS desde la consola de GCP (UI web).

Despliegue desde la web

Verificación con la herramienta kubectl

2\. Expón la app aprovisionando un ELB automáticamente

Opcionalmente puedes exponer tus workloads y Anthos GKE se encargará de aprovisionar y configurar automáticamente una instancia de AWS ELB, dejando tu app accesible al público.

Exponer el workload y crear el ELB

Una vez que "expones" tu servicio, puedes apoyarte en la UI de GKE para ver sus detalles, en este ejemplo del tipo LoadBalancer.

Pantalla de detalle del servicio en GKE

3\. ¡Felicidades!

Si vuelves a la consola de AWS, vas a encontrar el load balancer que Anthos GKE aprovisionó.

El load balancer aparece entre los recursos de AWS

Al abrir la URL del endpoint en tu navegador, vas a ver un servidor nginx desplegado con éxito (en este ejemplo) en tu cluster de GKE corriendo sobre AWS, y expuesto con un ELB en apenas unos clics.

¡Listo! Nginx queda accesible al público desde el navegador segundos después

Próximos pasos

En el próximo artículo veremos paso a paso cómo instalar Anthos GKE sobre AWS.

Pásate por aquí para encontrar el enlace cuando esté disponible o, si prefieres, sígueme para enterarte de mis nuevas publicaciones. También puedes visitar nuestro sitio https://blog.doit-intl.com para leer más artículos.