Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

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

By Mike SparrSep 19, 20203 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Perché eseguire GKE su AWS? È una domanda legittima e le motivazioni cambiano da azienda ad azienda. Tra i casi d'uso più comuni:

  • fault tolerance con una strategia multi-cloud active-active
  • sfruttare i credit dei vendor centralizzando la gestione
  • migrare da un cloud all'altro riducendo al minimo i tempi di inattività
  • valorizzare infrastruttura e competenze già in essere migliorando l'esperienza con k8s
  • creazione dei cluster più rapida (5-7 minuti contro i 20+ minuti tipici di EKS)

Qualunque sia il motivo, vediamo come fare il deploy di Google Kubernetes Engine (GKE) su AWS con Anthos GKE.

Questo è il primo articolo di una serie in 3 parti dedicata ad Anthos GKE di Google:

Architettura

Google Anthos GKE in esecuzione su Amazon Web Services

Node pool e autoscaling k8s semplice su AWS

EKS, il servizio Kubernetes gestito di Amazon, non offre molte delle funzionalità di GKE, il servizio gestito di Google. Oltre alla UI e alle operazioni di upgrade semplificate per control plane e worker node, una delle caratteristiche più apprezzate sono l'autoscaling e i node pool di Google. Ora non servono più compromessi.

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

Visualizzazione con kubectl dei nodi GKE in esecuzione su istanze AWS

Command-line interface (CLI)

Anthos mette a disposizione una CLI denominata anthos-gke, con funzionalità simili alla CLI gcloud ma capace anche di generare script Terraform (li approfondiremo nella parte 2 della serie). Con questo strumento si può passare dal control plane ai cluster, come mostrato di seguito.

Control plane

Cluster di test (cluster-0)

Enterprise container management (ECM)

In passato, le aziende che volevano centralizzare l'amministrazione dei propri cluster Kubernetes si rivolgevano a soluzioni ECM di vendor come Redhat OpenShift, VMWare Tanzu, Docker Enterprise o Rancher Labs. Ognuna, però, porta con sé limiti o forme di vendor lock-in.

Gestione di cluster locali e remoti da un'unica Google Cloud Console

Con Anthos di Google si può registrare qualsiasi cluster Kubernetes installando un piccolo workload chiamato gke-connect-agent, sia on-prem, sia su un altro cloud, sia sull'infrastruttura Google. In questo modo è possibile interagire con qualunque cluster e monitorarlo dalla console cloud di Google Kubernetes Engine. I cluster possono essere autogestiti o gestiti dal cloud, comprese alcune delle soluzioni ECM citate sopra.

Vediamo ora il tutto in azione… è semplice come 1-2-3

1\. Deploy di un'app su AWS dalla GCP Cloud Console

Anche se la maggior parte della gestione di Kubernetes passa per il tool da riga di comando kubectl o per una pipeline CI/CD, è possibile eseguire il deploy dei workloads sui cluster GKE in esecuzione su AWS direttamente dalla console GCP (UI web).

Deploy dal web

Verifica con il tool kubectl

2\. Esporre l'app con il provisioning automatico di un ELB

Volendo, si possono esporre i propri workloads e Anthos GKE provvederà in automatico al provisioning e alla configurazione di un'istanza AWS ELB, rendendo l'app accessibile pubblicamente.

Esporre il workload e creare l'ELB

Una volta "esposto" il servizio, la UI di GKE permette di visualizzarne i dettagli; in questo esempio si tratta di un servizio di tipo LoadBalancer.

Schermata di dettaglio del servizio GKE

3\. Congratulazioni!

Tornando alla console AWS, si vede il load balancer di cui Anthos GKE ha eseguito il provisioning.

Il load balancer compare tra le risorse AWS

Aprendo l'URL dell'endpoint dal browser, vediamo un server nginx (in questo esempio) distribuito con successo sul cluster GKE in esecuzione su AWS ed esposto tramite un ELB con pochi clic.

Evviva! Pochi secondi dopo, Nginx è raggiungibile pubblicamente dal browser

Prossimi passi

Nel prossimo articolo vedremo passo passo come installare Anthos GKE su AWS.

La invitiamo a tornare qui per il link non appena sarà disponibile, oppure a seguirmi per restare aggiornato sui nuovi articoli. Può inoltre visitare il nostro sito https://blog.doit-intl.com per leggere gli altri contenuti.