O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado do Kubernetes que facilita a execução do Kubernetes na AWS e on-premises. O Kubernetes é um sistema de código aberto para automatizar a implantação, a escalabilidade e o gerenciamento de aplicações conteineirizadas. A conformidade do Amazon EKS com o Kubernetes é certificada. Portanto, as aplicações existentes executadas no upstream do Kubernetes são compatíveis com o Amazon EKS.

O Amazon EKS gerencia automaticamente a disponibilidade e a escalabilidade dos nós do ambiente de gerenciamento do Kubernetes, que são responsáveis por programar contêineres, gerenciar a disponibilidade das aplicações, armazenar dados de cluster e outras tarefas principais.

O Amazon EKS permite executar suas aplicações do Kubernetes no Amazon Elastic Compute Cloud (Amazon EC2) e no AWS Fargate. Com o Amazon EKS, é possível aproveitar toda a performance, a escala, a confiabilidade e a disponibilidade da infraestrutura da AWS, assim como as integrações com os serviços de segurança e de redes da AWS, como balanceadores de carga da aplicação (ALBs) para distribuição de carga, integração do AWS Identity and Access Management (IAM) com o controle de acesso baseado em função (RBAC) e suporte à AWS Virtual Private Cloud (VPC) para redes de pod.

Clusters gerenciados do Kubernetes

Ambiente de gerenciamento gerenciado

O Amazon EKS oferece um ambiente de gerenciamento do Kubernetes escalável e altamente disponível que é executado em várias zonas de disponibilidade (AZs) da AWS. O Amazon EKS gerencia automaticamente a disponibilidade e a escalabilidade dos servidores de API do Kubernetes e a camada de persistência etcd. O Amazon EKS executa o ambiente de gerenciamento do Kubernetes em três AZs para garantir alta disponibilidade e detecta e substitui automaticamente os nós de ambiente de gerenciamento.

Integrações de serviços

O AWS Controllers for Kubernetes (ACK) oferece controle de gerenciamento direto sobre os produtos da AWS de dentro do seu ambiente Kubernetes. O ACK simplifica a criação de aplicações do Kubernetes escaláveis e altamente disponíveis que utilizam produtos da AWS.

Console hospedado pelo Kubernetes

O EKS oferece um console integrado para clusters do Kubernetes. Os operadores de cluster e os desenvolvedores de aplicações podem usar o EKS como um local único para organizar, visualizar e solucionar problemas das aplicações do Kubernetes em execução no Amazon EKS. O console do EKS é hospedado pela AWS e disponível automaticamente para todos os clusters do EKS.

Complementos do EKS

Os complementos do EKS são softwares operacionais comuns para ampliar a funcionalidade operacional do Kubernetes. É possível usar o EKS para instalar e manter este software de complemento atualizado. Depois de iniciar um cluster do Amazon EKS, é possível selecionar os complementos que gostaria de executar no cluster, inclusive ferramentas do Kubernetes para observabilidade, redes, escalabilidade automática e integrações de produtos da AWS.

Grupos de nós gerenciados

O Amazon EKS permite criar, atualizar, escalar e encerrar nós de seu cluster com um único comando. Esses nós também podem aproveitar as instâncias spot do Amazon EC2 para reduzir custos. Os grupos de nós gerenciados executam instâncias do Amazon EC2 usando as mais recentes imagens de máquina da Amazon (AMI) otimizadas ou personalizadas para o EKS em sua conta da AWS, enquanto as atualizações e terminações esvaziam lentamente os nós para garantir que as aplicações continuem disponíveis.

Use o eksctl para inicialização de nós e gerenciamento de linha única

Use a ferramenta de linha de comando eksctl para começar a usar o Amazon EKS em minutos. Basta executar um comando “eksctl create cluster” para criar seu cluster EKS. É possível usar o eksctl para simplificar o gerenciamento e as operações de clusters, inclusive o gerenciamento de nós e complementos.

Suporte ao Windows

O Amazon EKS oferece suporte à adição de nós do Windows como nós de processamento e ao agendamento de contêineres do Windows. O EKS oferece suporte à execução de nós de processamento do Windows juntamente com os nós de processamento do Linux, permitindo que você use o mesmo cluster para gerenciar aplicações em qualquer sistema operacional.

Suporte ao ARM

Os processadores Graviton2 da AWS potencializam instâncias do EC2 baseadas em ARM, o que permite um grande avanço na performance e nas capacidades, além de uma considerável economia de custos. Melhorar a eficiência de custo da aplicação é o principal objetivo da execução de contêineres. Una os dois, e você terá uma ótima performance de preço. Por exemplo, workload testing exibe tipos de instância com base nos processadores Graviton2 que oferecem performance de preço até 40% melhor do que as famílias M5, C5 e R5 baseadas em x86 equivalentes. O Amazon EKS no Graviton2 da AWS costuma estar disponível onde os serviços estão disponíveis por região.

Redes e segurança

O Amazon EKS facilita o fornecimento de segurança para os clusters do Kubernetes com recursos e integrações avançados com os serviços da AWS e soluções de parceiro de tecnologia. Por exemplo, o IAM fornece controle de acesso refinado e o Amazon VPC isola seus clusters do Kubernetes de outros clientes.

Suporte para IPv6

O Amazon Elastic Kubernetes Service (EKS) é compatível com IPv6, permitindo aos clientes escalar aplicações conteinerizadas no Kubernetes muito além dos limites do espaço de endereço privado IPv4. Com o suporte EKS para IPv6, os pods são atribuídos com um único endereço IPv6 globalmente roteável, permitindo que você escale aplicações no cluster sem o consumo de espaço limitado de endereço IPv4. O endereço IPv6 globalmente roteável pode ser utilizado para comunicação com qualquer endpoint IPv6 na Amazon VPC, na rede on-premises ou na Internet pública. Além disso, o EKS configura as redes para que os pods ainda possam se comunicar com endpoints baseados em IPv4 fora do cluster, o que permite adotar os benefícios do IPv6 usando o Kubernetes sem a necessidade de depender que todos os serviços implantados na sua organização sejam migrados para IPv6.

Descoberta de serviço

O AWS Cloud Map é um serviço de descoberta de recursos na nuvem. Com o Cloud Map, é possível definir nomes personalizados e manter a localização atualizada desses recursos de aplicação que mudam dinamicamente. Isso aumenta a disponibilidade de sua aplicação, pois o serviço da Web sempre descobre os locais mais atualizados dos recursos. O Cloud Map funciona com um conector Kubernetes de código aberto que propaga automaticamente os locais de serviço interno para o registro do serviço Cloud Map quando os serviços do Kubernetes são iniciados e os remove quando são terminados. Os serviços baseados no Kubernetes são detectáveis por meio do Cloud Map, que fornece um registro de serviço unificado para todas as workloads do contêiner.

Malha de serviço

A malha de serviço padroniza como cada microsserviço de sua aplicação se comunica, facilitando a criação e a execução de aplicações complexas de microsserviços. O AWS App Mesh configura sua aplicação para permitir uma visibilidade completa e alta disponibilidade. É possível usar o controlador do AWS App Mesh para o Kubernetes para criar novos serviços conectados à malha, definir o roteamento de tráfego e configurar recursos de segurança, como criptografia. Além disso, permite registrar automaticamente os seus pods do Kubernetes no AWS Cloud Map para a detecção de serviços. O App Mesh exporta métricas, logs e rastreios para os endpoints especificados na configuração de bootstrap do Envoy fornecida. O App Mesh fornece uma API para configurar rotas de tráfego, interrupção de circuito, novas tentativas e outros controles entre os microsserviços habilitados para a malha. O App Mesh Mutual TLS ajuda a criptografar todas as solicitações entre serviços, mesmo quando ocorrem em suas redes privadas. Além disso, você pode adicionar controles de autenticação para permitir a comunicação apenas entre os serviços permitidos.

Redes nativas da VPC

Seus clusters do EKS são executados em uma Amazon VPC, o que permite usar os próprios grupos de segurança e lista de controle de acesso de rede (ACLs) da VPC. Nenhum recurso de computação é compartilhado com outros clientes, o que fornece um alto nível de isolamento para construir aplicações seguras e confiáveis. O EKS usa a interface de rede de contêiner (CNI) da Amazon VPC, permitindo que pods do Kubernetes recebam endereços IP da VPC. O Amazon EKS trabalha com o mecanismo de políticas de rede do Project Calico para oferecer políticas de redes detalhadas para workloads do Kubernetes. Usar a API de política de rede do Kubernetes permite controlar o acesso conforme o serviço.

AWS IAM Authenticator

O Amazon EKS integra o Kubernetes RBAC (o sistema nativo de controle de acesso baseado em função para Kubernetes) com o AWS IAM. É possível atribuir funções do RBAC diretamente a cada entidade do IAM, o que permite controle detalhado das permissões de acesso aos nós do ambiente de gerenciamento do Kubernetes.

IAM para contas de serviço

O Amazon EKS permite atribuir permissões do IAM a contas de serviço do Kubernetes. A função do IAM pode controlar o acesso a outros serviços conteinerizados, recursos da AWS externos ao cluster, como bancos de dados e segredos, ou serviços e aplicações de terceiros executados fora da AWS. Isso permite um controle de acesso refinado e em nível de pod ao executar clusters com vários serviços colocalizados e simplifica a otimização de custos e a disponibilidade do cluster.

Conformidade

O Amazon EKS é certificado por vários programas de conformidade para aplicações reguladas e confidenciais. O Amazon EKS está em conformidade com SOC, PCI, ISO, FedRAMP-Moderate, IRAP, C5, K-ISMS, ENS High, OSPAR, HITRUST CSF e é um serviço qualificado para HIPAA.

Balanceamento de carga

O Amazon EKS é compatível com o uso do Elastic Load Balancing, incluindo o balanceador de carga da aplicação (ALB), o balanceador de carga da rede (NLB) e o balanceador de carga clássico.

É possível executar o balanceamento de carga de cluster padrão do Kubernetes ou qualquer controlador de entrada compatível com o Kubernetes com seu cluster do Amazon EKS.

Computação sem servidor

O EKS suporta o AWS Fargate para executar seus aplicativos Kubernetes usando computadores sem servidor. O Fargate elimina a necessidade de provisionar e gerenciar servidores, permite que você especifique e pague pelos recursos por aplicativo, além de aumentar a segurança ao conceber aplicativos isolados.

Implantações híbridas

Você pode usar o EKS no AWS Outposts para executar aplicações em contêiner que necessitam de latências particularmente baixas em sistemas on-premises. O AWS Outposts é um serviço totalmente gerenciado que estende a infraestrutura, os serviços, as APIs e as ferramentas da AWS em praticamente qualquer site conectado. Com o EKS no Outposts, você pode gerenciar contêineres on-premises com a mesma facilidade que gerencia seus contêineres na nuvem.

É possível anexar nós em execução nas AWS Local Zones ou AWS Wavelength para o EKS, oferecendo mais opções para a infraestrutura gerenciada pela AWS na borda.

O Amazon EKS Distro empacota a mesma distribuição do software Kubernetes de código aberto usado no Amazon EKS na AWS para uso em sua própria infraestrutura on-premises. Gerencie os clusters Distro do EKS com as suas próprias ferramentas ou com o Amazon EKS Anywhere (em 2021).

Com o Amazon EKS Anywhere, você pode criar e operar facilmente clusters do Kubernetes (gerados com o software no Amazon EKS Distro) on-premises, inclusive em suas próprias máquinas virtuais (VMs) e servidores bare metal. O EKS Anywhere economiza a complexidade de construir e oferecer suporte às suas próprias ferramentas para gerenciar clusters do Kubernetes. O EKS Anywhere fornece ferramentas de automação que simplificam a criação, a administração e as operações de cluster em sua infraestrutura, como bare metal, VMware vSphere e máquinas virtuais de nuvem. Também conta com máquinas virtuais em nuvem com configurações de registro, monitoramento, rede e armazenamento padrão. O EKS Anywhere traz outras ferramentas e componentes necessários para executar o Kubernetes na produção, como instalação de cluster e gerenciamento de ciclo de vida, observabilidade, backup de cluster e gerenciamento de políticas.

Registro em log

O Amazon EKS está integrado ao AWS CloudTrail para oferecer visibilidade às operações de gerenciamento do EKS, inclusive histórico de auditoria. Você pode usar o CloudTrail para visualizar chamadas de API para a API do Amazon EKS. O Amazon EKS também fornece logs do ambiente de gerenciamento do Kubernetes para o Amazon CloudWatch para análise, depuração e auditoria.

Conformidade certificada

O Amazon EKS executa a mais recente versão de produção do Kubernetes e é certificado como compatível com o Kubernetes. Portanto, você pode usar todos os seus plugins e ferramentas existentes da comunidade do Kubernetes. As aplicações executadas no Amazon EKS são totalmente compatíveis com as aplicações executadas em qualquer ambiente do Kubernetes padrão executado em datacenters on-premises ou em nuvens públicas. Isso significa que você pode facilmente migrar qualquer aplicação padrão do Kubernetes para o Amazon EKS sem refatorar seu código.

Atualizações de cluster gerenciados

O Amazon EKS facilita a atualização dos clusters em execução para a versão mais recente do Kubernetes sem gerenciar o processo de atualização. As atualizações de versão do Kubernetes são feitas no local, eliminando a necessidade de criar novos clusters ou migrar as aplicação para um novo cluster.

À medida que novas versões do Kubernetes forem lançadas e validadas para uso com o Amazon EKS, ofereceremos suporte a três versões estáveis do Kubernetes como parte de processo de atualização a qualquer momento. Você pode iniciar a instalação da nova versão e revisar o status da atualização em trânsito por meio do SDK, da CLI ou do Console AWS.

Suporte avançado a workloads

O Amazon EKS oferece uma imagem de máquina da Amazon (AMI) otimizada que inclui drivers NVIDIA configurados para instâncias do Amazon EC2 P2 e P3 habilitadas para GPU. Isso facilita o uso do Amazon EKS para executar workloads computacionalmente avançadas, incluindo machine learning (ML), contêineres de aprendizado profundo (DL), computação de alta performance (HPC), análise financeira e transcodificação de vídeo.

Compatibilidade de código aberto

O Amazon EKS é totalmente compatível com as ferramentas de comunidade do Kubernetes e oferece suporte a complementos bastante utilizados do Kubernetes. Isso inclui o CoreDNS, que cria um serviço DNS para seu cluster e para a interface da Web do Kubernetes Dashboard e a ferramenta da linha de comando kubectl, ajudando a acessar e gerenciar seu cluster no Amazon EKS.

Para obter mais informações, consulte a página de ferramentas da comunidade do Kubernetes no GitHub.

O Amazon EKS é totalmente compatível com as ferramentas de comunidade do Kubernetes e oferece suporte a complementos bastante utilizados do Kubernetes. Isso inclui o CoreDNS, que cria um serviço DNS para seu cluster e para a interface da Web do Kubernetes Dashboard e a ferramenta da linha de comando kubectl, ajudando a acessar e gerenciar seu cluster no Amazon EKS.

Para obter mais informações, consulte a página de ferramentas da comunidade do Kubernetes no GitHub.

EKS Connector

O Amazon EKS permite a conexão à AWS de qualquer cluster do Kubernetes compatível e a visualização dele no console do Amazon EKS. Você pode conectar qualquer cluster do Kubernetes compatível, incluindo clusters do Amazon EKS Anywhere executados on-premises, clusters autogerenciados no Amazon Elastic Compute Cloud (Amazon EC2) e outros clusters do Kubernetes executados fora da AWS. Independentemente de onde o cluster esteja sendo executado, você pode usar o console do Amazon EKS para visualizar todos os clusters conectados e os recursos do Kubernetes em execução neles.