Arquitetura do Amazon EKS - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Arquitetura do Amazon EKS

O Amazon EKS está alinhado com a arquitetura geral de cluster do Kubernetes. Para obter mais informações, consulte Componentes do Kubernetes na documentação do Kubernetes. As seções a seguir resumem alguns detalhes adicionais da arquitetura do Amazon EKS.

Ambiente de gerenciamento

O Amazon EKS garante que todo cluster tenha seu próprio ambiente de gerenciamento do Kubernetes exclusivo. Esse design mantém a infraestrutura de cada cluster separada, sem sobreposições entre clusters ou contas da AWS. A configuração inclui:

Componentes distribuídos

O ambiente de gerenciamento posiciona pelo menos duas instâncias de servidor de API e três instâncias de etcd em três zonas de disponibilidade AWS em uma região AWS.

Performance ideal

O Amazon EKS monitora e ajusta ativamente as instâncias do ambiente de gerenciamento para manter o máximo de performance.

Resiliência

Se uma instância do ambiente de gerenciamento apresentar falhas, o Amazon EKS a substitui rapidamente, utilizando uma zona de disponibilidade diferente, se necessário.

Tempo de atividade consistente

Executando os clusters em várias zonas de disponibilidade, um Acordo de Serviço (SLA) de disponibilidade de endpoints do servidor de API confiável é alcançado.

O Amazon EKS usa o Amazon Virtual Private Cloud (Amazon VPC) para limitar o tráfego entre os componentes do ambiente de gerenciamento dentro de um único cluster. Os componentes de um cluster não podem visualizar nem receber comunicações de outros clusters ou contas da AWS, exceto quando autorizado pelas políticas de controle de acesso baseado em perfil (RBAC) do Kubernetes.

Computação

Além do ambiente de gerenciamento, um cluster do Amazon EKS tem um conjunto de máquinas de trabalho denominadas nós. Selecionar o tipo de nó de cluster apropriado do Amazon EKS é crucial para atender aos seus requisitos específicos e otimizar a utilização dos recursos. O Amazon EKS oferece os seguintes tipos de nós primários:

Modo Automático do EKS

O Modo Automático do EKS estende o gerenciamento da AWS além do ambiente de gerenciamento para incluir o plano de dados, automatizando o gerenciamento da infraestrutura de clusters. Ele integra os principais recursos do Kubernetes como componentes integrados, incluindo ajuste de escala automático de computação, rede, balanceamento de carga, DNS, armazenamento e suporte a GPU. O Modo Automático do EKS gerencia dinamicamente os nós com base nas demandas das workloads, usando AMIs imutáveis com recursos de segurança aprimorados. Ele automatiza atualizações e upgrades, respeitando os orçamentos de interrupção de pods, e inclui componentes gerenciados que, de outra forma, exigiriam o gerenciamento de complementos. Essa opção é ideal para usuários que desejam aproveitar a experiência da AWS nas operações diárias, minimizar a sobrecarga operacional e se concentrar no desenvolvimento de aplicações em vez de no gerenciamento da infraestrutura.

AWS Fargate

Fargate é um mecanismo de computação de tecnologia sem servidor para contêineres que elimina a necessidade de gerenciar as instâncias subjacentes. Com o Fargate, você especifica as necessidades de recursos da aplicação e o AWS provisiona, escala e mantém a infraestrutura automaticamente. Essa opção é ideal para usuários que priorizam a facilidade de uso e desejam se concentrar no desenvolvimento e na implantação de aplicações, em vez de no gerenciamento da infraestrutura.

Karpenter

O Karpenter é um autoscaler de clusters do Kubernetes flexível e de alta performance que ajuda a melhorar a disponibilidade das aplicações e a eficiência do cluster. O Karpenter executa recursos computacionais do tamanho certo em resposta à mudança na carga da aplicação. Essa opção pode provisionar recursos computacionais just-in-time que atendam aos requisitos de sua workload.

Grupos de nós gerenciados

Grupos de nós gerenciados são uma combinação de automação e personalização para gerenciar um conjunto de instâncias do Amazon EC2 em um cluster do Amazon EKS. O AWS cuida de tarefas como aplicação de patches, atualização e escalação de nós, facilitando os aspectos operacionais. Em paralelo, argumentos do kubelet personalizados são compatíveis, ampliando as possibilidades para a aplicação de políticas avançadas de gerenciamento de CPU e memória. Além disso, eles aprimoram a segurança por meio das perfis do AWS Identity and Access Management (IAM) para contas de serviço e, ao mesmo tempo, reduzem a necessidade de permissões separadas por cluster.

Nós autogerenciados

Nodos autogerenciados oferecem controle total das instâncias do Amazon EC2 dentro de um cluster do Amazon EKS. Sendo o responsável por gerenciar, escalar e manter os nós, você tem controle total sobre a infraestrutura subjacente. Essa opção é adequada para os usuários que precisam de controle granular e personalização dos nós, e estão prontos para investir tempo no gerenciamento e na manutenção da infraestrutura.

Amazon EKS Hybrid Nodes

Com o Amazon EKS Hybrid Nodes, você pode usar a infraestrutura on-premises e de borda como nós nos clusters do Amazon EKS. O Amazon EKS Hybrid Nodes unifica o gerenciamento do Kubernetes em todos os ambientes e transfere a gestão do ambiente de gerenciamento do Kubernetes para a AWS das aplicações on-premises e de borda.

Funcionalidades do EKS

O Amazon EKS fornece funcionalidades de cluster totalmente gerenciadas por meio da instalação e do gerenciamento de APIs do Kubernetes no cluster, incluindo as definições de recursos personalizados do Kubernetes. Ao mesmo tempo, ele opera controladores e demais componentes na infraestrutura da AWS, de forma isolada do cluster. O EKS disponibiliza aplicação de patches, escalabilidade e monitoramento automatizados dessas funcionalidades, gerenciando totalmente o ciclo de vida para reduzir o esforço operacional de serviços internos ao cluster que são destinados à orquestração de workloads, ao gerenciamento de recursos da AWS e muito mais.

O EKS fornece os seguintes tipos de funcionalidades:

AWS Controlllers for Kubernetes (ACK) da)

Com o AWS Controllers for Kubernetes (ACK), é possível gerenciar recursos da AWS por meio de APIs do Kubernetes, o que permite definir buckets do S3, bancos de dados do RDS, perfis do IAM e demais recursos da AWS como recursos personalizados do Kubernetes. É possível gerenciar recursos da AWS juntamente com as workloads do Kubernetes usando as mesmas ferramentas e fluxos de trabalho, com suporte para mais de 50 serviços da AWS, incluindo o S3, o RDS, o DynamoDB e o Lambda.

Argo CD

O Argo CD executa a implantação contínua baseada em GitOps para as workloads de aplicações, recursos da AWS e configuração do cluster, usando repositórios do Git como fonte única de verdade. O Argo CD sincroniza automaticamente os clusters com os repositórios do Git e detecta desvios, realizando a reconciliação contínua para garantir que as aplicações e os recursos implantados correspondam ao estado desejado no controle de versão. Você pode usar o Argo CD para gerenciar aplicações em um cluster específico ou implantar e gerenciar aplicações em vários clusters de um único recurso do Argo CD, com a implantação automatizada de repositórios do Git sempre que alterações forem confirmadas.

kro (Kube Resource Orchestrator)

O kro (Kube Resource Orchestrator) possibilita a criação de APIs personalizadas do Kubernetes que compõem vários recursos em abstrações de nível superior, permitindo que as equipes responsáveis pela plataforma definam padrões reutilizáveis para combinações comuns de recursos. Isso permite que as equipes responsáveis pela plataforma forneçam funcionalidades de autoatendimento com as barreiras de proteção adequadas, permitindo que os desenvolvedores provisionem infraestruturas complexas por meio de APIs simples e personalizadas, mantendo os padrões e as práticas recomendadas da organização.