
O Kubernetes gerencia um cluster de instâncias de computação, além de programar contêineres para serem executados no cluster, de acordo com os recursos de computação disponíveis, e os de cada contêiner (são executados em pods). Podemos executar e escalar um ou vários contêineres ao mesmo tempo, como um pod.
O plano de controle do Kubernetes determina quando e onde, executar os pods, o gerenciamento do roteamento do tráfego, além de escalar os pods de acordo com a utilização, ou outras métricas definidas.
O Kubernetes inicia automaticamente os pods no cluster de acordo com os requisitos, e disso, reinicia automaticamente os pods em caso de falhas, ou nas instâncias em que são executados. Cada pod recebe um endereço IP, e um nome de DNS único➡️ usado pelo Kubernetes para conexão dos serviços entre si, e o tráfego externo.
E, por que, usar o Kubernetes?
Porque é um projeto de código aberto, e que é possível usá-lo para executar aplicações conteinerizadas em qualquer ambiente, sem a necessidade de alterar as ferramentas operacionais, e pode ser usado também para aprimorar e ampliar, a arquitetura de aplicações.
Algumas vantagens:
- O Kubernetes permite definir aplicações conteinerizadas complexas, e executá-las em grande escala, em um cluster de servidores;
- Usando as mesmas ferramentas operacionais, as aplicações conteinerizadas podem ser movimentadas sem interrupções de máquinas locais de desenvolvimento, para implantações de produção na nuvem.
A AWS facilita a execução do Kubernetes, por poder optar por gerenciar a infraestrutura do Kubernetes com o Amazon EC2, ou obter um ambiente automaticamente provisionado e gerenciado, com o Amazon EKS.
Destaque importante: integrações avançadas e respaldadas, com serviços, como o Amazon Virtual Private Cloud (VPC), o AWS Identity and Access Management (IAM), além da segurança, da escalabilidade, e da alta disponibilidade da AWS.