Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

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

By Mike SparrSep 19, 20203 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Por que alguém iria querer rodar o GKE na AWS? A pergunta é justa, e os motivos variam de empresa para empresa. Alguns casos de uso comuns:

  • tolerância a falhas com uma estratégia multi-cloud ativo-ativo
  • aproveitar créditos de fornecedores e centralizar a gestão
  • migrar de uma nuvem para outra com o mínimo de downtime
  • aproveitar a infraestrutura e o conhecimento que você já tem e, ao mesmo tempo, melhorar a experiência com Kubernetes
  • criação de cluster mais rápida (5 a 7 minutos contra os 20+ minutos típicos do EKS)

Seja qual for o motivo, vamos ver como implantar o Google Kubernetes Engine (GKE) na AWS usando o Anthos GKE.

Este é o primeiro de uma série de 3 artigos sobre o Anthos GKE do Google:

Arquitetura

Google Anthos GKE rodando na Amazon Web Services

Node pools e autoscaling de Kubernetes na AWS sem complicação

O EKS, serviço gerenciado de Kubernetes da própria Amazon, fica para trás em vários recursos oferecidos pelo GKE, o serviço gerenciado do Google. Além da interface e das operações simplificadas de upgrade do cluster (control plane e worker nodes), um dos recursos mais queridos é o autoscaling com node pools do Google. Agora você não precisa mais abrir mão disso.

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

Visualização via kubectl dos nodes rodando GKE em instâncias da AWS

Interface de linha de comando (CLI)

O Anthos traz uma interface de linha de comando (CLI) chamada anthos-gke, com funcionalidades parecidas com as da CLI do gcloud, mas que também gera scripts Terraform (vamos detalhar isso na parte 2 desta série). Com a ferramenta, você alterna entre o control plane e os clusters, como mostra a imagem.

Control plane

Cluster de teste (cluster-0)

Enterprise container management (ECM)

Tradicionalmente, quando uma empresa queria centralizar a administração dos seus clusters Kubernetes, recorria a soluções ECM como Redhat OpenShift, VMWare Tanzu, Docker Enterprise ou Rancher Labs. Cada uma, porém, tem suas limitações ou algum nível de vendor lock-in.

Gerenciando clusters locais e remotos a partir de um único Google Cloud Console

Com o Anthos do Google, dá para registrar qualquer cluster Kubernetes instalando um pequeno workload chamado gke-connect-agent — esteja ele on-prem, em outra nuvem ou rodando na própria infraestrutura do Google. Assim, você consegue interagir e monitorar qualquer cluster pelo console do Google Kubernetes Engine. Os clusters podem ser autogerenciados, gerenciados pela nuvem e até algumas das soluções ECM citadas acima.

Agora vamos ver tudo isso na prática… é simples assim: 1–2–3

1\. Implante o app na AWS pelo Cloud Console do GCP

A maior parte do gerenciamento do Kubernetes acontece via kubectl ou por um pipeline de CI/CD, mas você também pode implantar workloads nos seus clusters GKE que rodam na AWS direto pelo console do GCP (interface web).

Implantação pela web

Confira com o kubectl

2\. Exponha o app provisionando um ELB automaticamente

Se quiser, você pode expor seus workloads, e o Anthos GKE provisiona e configura automaticamente uma instância do AWS ELB, deixando o app acessível publicamente.

Expor o workload e criar o ELB

Depois de "expor" o serviço, você pode usar a interface do GKE para ver os detalhes — neste exemplo, um serviço do tipo LoadBalancer.

Tela de detalhes do serviço no GKE

3\. Parabéns!

De volta ao console da AWS, você consegue ver o load balancer que o Anthos GKE provisionou.

O load balancer aparece nos recursos da AWS

Ao acessar a URL do endpoint no navegador, você vê um servidor nginx (neste exemplo) implantado com sucesso no seu cluster GKE rodando na AWS e exposto por um ELB em poucos cliques.

Eba! Segundos depois, o Nginx já está publicamente acessível no navegador

Próximos passos

No próximo artigo, vamos passar pelas instruções passo a passo para instalar o Anthos GKE na AWS.

Volte aqui em breve para conferir o link assim que estiver disponível ou, se preferir, me siga para ficar por dentro dos próximos posts. Você também pode visitar nosso site https://blog.doit-intl.com para ler outros artigos.