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.
Funcionalidades do EKS
dica
As funcionalidades do Amazon EKS são um conjunto, em camadas. de recursos de cluster totalmente gerenciados que auxiliam a aumentar a produtividade dos desenvolvedores e a reduzir a complexidade de desenvolvimento e de escalabilidade com o Kubernetes. As funcionalidades do EKS são recursos nativos do Kubernetes para implantação contínua declarativa, gerenciamento de recursos da AWS e criação e orquestração de recursos do Kubernetes, tudo totalmente gerenciado pela AWS. Com as funcionalidades do EKS, é possível concentrar-se mais na criação e na escalabilidade das workloads, transferindo a carga operacional desses serviços fundamentais de plataforma para a AWS. Essas funcionalidades são executadas no próprio EKS, e não em seus clusters, dispensando a instalação, a manutenção e a escalabilidade de componentes essenciais de plataforma nos nós de processamento.
Para começar a usar, você pode criar uma ou mais funcionalidades do EKS em um cluster do EKS novo ou já existente. Para realizar essa ação, é possível usar a AWS CLI, o Console de gerenciamento da AWS, as APIs do EKS, o eksctl ou suas ferramentas preferidas de infraestrutura como código. Apesar das funcionalidades do EKS serem desenvolvidas para operar em conjunto, elas são recursos de nuvem independentes, permitindo que você realize a escolha de acordo com as necessidades e o caso de uso da sua aplicação.
Todas as versões do Kubernetes com suporte por parte do EKS são compatíveis com as funcionalidades do EKS.
nota
As funcionalidades do EKS estão disponíveis para uso em todas as regiões comerciais da AWS nas quais o Amazon EKS está disponível. Para obter uma lista das regiões com suporte, consulte Endpoints e cotas do Amazon EKS na Referência geral da AWS.
Capacidades disponíveis
AWS Controlllers for Kubernetes (ACK)
O ACK viabiliza o gerenciamento de recursos da AWS por meio de APIs do Kubernetes, permitindo a criação e o gerenciamento de buckets do S3, bancos de dados do RDS, perfis do IAM e outros recursos da AWS utilizando recursos personalizados do Kubernetes. O ACK faz a reconciliação contínua entre o estado desejado e o estado atual na AWS, corrigindo qualquer desvio ao longo do tempo para manter a integridade do sistema e dos recursos configurados conforme especificado. É 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. O ACK fornece suporte para o gerenciamento de recursos entre contas e entre regiões, permitindo arquiteturas complexas de gerenciamento de sistemas com várias contas e vários clusters. O ACK é compatível com recursos somente leitura e a adoção somente leitura, facilitando a migração de outras ferramentas de infraestrutura como código para os sistemas baseados em Kubernetes.
Argo CD
O Argo CD aplica o modelo de implantação contínua baseada em GitOps para as aplicações, utilizando repositórios do Git como a fonte da verdade para as workloads e para o estado do sistema. O Argo CD faz a sincronização automática de recursos de aplicações para os clusters com base em repositórios do Git, identificando e corrigindo desvios para assegurar que as aplicações implantadas estejam alinhadas ao estado desejado. É possível implantar e gerenciar aplicações em vários clusters de uma única instância do Argo CD, com a implantação automatizada de repositórios do Git sempre que alterações forem confirmadas. O uso conjunto do Argo CD e do ACK fornece um sistema de GitOps fundamental, simplificando o gerenciamento de dependências das workloads, além de fornecer suporte a projetos de sistemas completos, incluindo o gerenciamento de clusters e de infraestrutura em grande escala. O Argo CD se integra ao Centro de Identidade da AWS para autenticação e autorização, e fornece uma interface do usuário do Argo hospedada para a visualização da integridade das aplicações e do status de implantação.
kro (Kube Resource Orchestrator)
O kro 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, os blocos de criação da nuvem. Com o kro, você pode compor recursos do Kubernetes e da AWS em abstrações unificadas, usando uma sintaxe simplificada que viabiliza configurações dinâmicas e o uso de lógica condicional. O kro permite que as equipes responsáveis pela plataforma disponibilizem funcionalidades de autoatendimento com as devidas barreiras de proteção, possibilitando que os desenvolvedores provisionem infraestruturas complexas por meio de APIs simples e especializadas, enquanto preservam os padrões e as práticas recomendadas da organização. Os recursos do kro nada mais são do que recursos do Kubernetes, definidos em manifestos do Kubernetes, que podem ser armazenados no Git ou enviados para registros compatíveis com OCI, como o Amazon ECR, para facilitar a distribuição por toda a organização.
Benefícios das funcionalidades do EKS
As funcionalidades do EKS são totalmente gerenciadas pela AWS, o que dispensa a instalação, a manutenção e a escalabilidade de serviços essenciais do cluster. A AWS lida com a aplicação de patches de segurança, atualizações e gerenciamento operacional, permitindo que as equipes concentrem esforços no desenvolvimento na AWS e não nas operações de cluster. Ao contrário dos complementos convencionais do Kubernetes que consomem recursos do cluster, as funcionalidades são executadas no EKS, e não em nós de processamento. Essa abordagem libera capacidade e recursos do cluster para as workloads, enquanto minimiza a carga operacional necessária para o gerenciamento de controladores internos do cluster e de outros componentes de plataforma.
Com as funcionalidades do EKS, é possível gerenciar implantações, recursos da AWS, recursos personalizados do Kubernetes e composições usando APIs nativas do Kubernetes e ferramentas como o kubectl. Todas as funcionalidades funcionam no contexto dos clusters, identificando e corrigindo automaticamente desvios de configuração em recursos de aplicações e de infraestrutura de nuvem. Você pode implantar e gerenciar recursos em vários clusters, contas da AWS e regiões usando um único ponto de controle, simplificando as operações em ambientes distribuídos de alta complexidade.
As funcionalidades do EKS são projetadas para fluxos de trabalho de GitOps, o que fornece um gerenciamento declarativo e com versionamento de aplicações e de infraestrutura. As alterações seguem do Git para todo o sistema, fornecendo trilhas de auditoria, funcionalidades de reversão e fluxos de trabalho colaborativos que se integram às práticas de desenvolvimento existentes. Esta abordagem nativa do Kubernetes dispensa o uso de diversas ferramentas ou o gerenciamento de sistemas de infraestrutura como código externos aos clusters, garantindo a existência de uma única fonte de verdade como referência. O estado desejado, definido em configurações declarativas do Kubernetes com versionamento, é continuamente aplicado em todo o seu ambiente.
Preços
Com as funcionalidades do EKS, não há compromissos antecipados nem taxas mínimas. A cobrança é feita por recurso da funcionalidade e se baseia em cada hora de atividade do recurso no cluster do Amazon EKS. Os recursos específicos do Kubernetes, gerenciados pelas funcionalidades do EKS, também são faturados a uma taxa horária.
Para obter informações atualizadas sobre preços, consulte a página de preços do Amazon EKS
dica
É possível empregar o Explorador de Custos da AWS e os Relatórios de Custos e Uso para monitorar os custos das funcionalidades de forma isolada de outros custos do EKS. Você pode marcar as funcionalidades com o nome do cluster, tipo de funcionalidade e outros detalhes para fins de alocação de custos.
Funcionamento das funcionalidades do EKS
Cada funcionalidade constitui um recurso da AWS criado no cluster do EKS. Após a criação, a funcionalidade é executada no EKS e é totalmente gerenciada pela AWS.
nota
É possível criar apenas um recurso da funcionalidade de cada tipo, nomeadamente, Argo CD, ACK e kro, por cluster. Não é possível criar mais de um recurso da funcionalidade do mesmo tipo em um único cluster.
A interação com as funcionalidades do cluster é feita por meio de APIs e ferramentas nativas do Kubernetes:
-
Use o
kubectlpara aplicar recursos personalizados do Kubernetes -
Use os repositórios do Git como a fonte da verdade para fluxos de trabalho de GitOps
Algumas funcionalidades oferecem suporte a ferramentas adicionais. Por exemplo:
-
Use a CLI do Argo CD para configurar e gerenciar repositórios e clusters na funcionalidade do Argo CD
-
Use a interface do usuário do Argo CD para visualizar e gerenciar aplicações controladas pela funcionalidade do Argo CD
Embora concebidas para operar de forma integrada, as funcionalidades são independentes, e você escolhe quais deseja ativar. Você pode habilitar uma, duas ou todas as três funcionalidades, de acordo com a sua demanda, ajustando a configuração à medida que suas necessidades mudarem.
Todos os tipos de computação do EKS são compatíveis com o uso das funcionalidades do EKS. Para obter mais informações, consulte Gerenciar recursos computacionais usando nós.
Para obter configurações de segurança e detalhes sobre os perfis do IAM, consulte Considerações sobre segurança para funcionalidades do EKS. Para obter padrões de arquitetura de vários clusters, consulte Considerações sobre as funcionalidades do EKS.
Casos de uso comuns
GitOps aplicado a aplicações e infraestrutura
Use o Argo CD na implantação de aplicações e de componentes operacionais, e o ACK para o gerenciamento de configurações de cluster e para o provisionamento de infraestrutura, empregando repositórios do Git como fonte para ambos. Toda a sua pilha, que é composta por aplicações, bancos de dados, armazenamento e rede, é definida como código e implantada automaticamente.
Exemplo: uma equipe de desenvolvimento envia alterações para o Git. O Argo CD realiza a implantação da aplicação atualizada, enquanto o ACK provisiona um novo banco de dados do RDS com a configuração adequada. Todas as alterações são passíveis de auditoria e de reversão, e mantêm a consistência em diferentes ambientes.
Engenharia de plataforma com autoatendimento
Use o kro para criar APIs personalizadas que compõem recursos do ACK e do Kubernetes. As equipes responsáveis pela plataforma definem padrões aprovados com barreiras de proteção. As equipes responsáveis pela aplicação usam APIs simplificadas de alto nível para realizar o provisionamento de pilhas inteiras.
Exemplo: uma equipe responsável pela plataforma cria uma API de “WebApplication” para provisionar automaticamente os recursos Deployment, Service e Ingress, e um bucket do S3. Os desenvolvedores usam essa API sem a necessidade de compreender a complexidade subjacente ou as permissões da AWS.
Gerenciamento de aplicações em vários clusters
Use o Argo CD para implantar aplicações em vários clusters do EKS distribuídos em diferentes regiões ou contas. Gerencie todas as implantações com uma única instância do Argo CD, empregando políticas e fluxos de trabalho consistentes.
Exemplo: implante a mesma aplicação em clusters de desenvolvimento, preparação e produção distribuídos por diversas regiões. O Argo CD assegura a sincronização de cada ambiente com a ramificação correspondente no Git.
Gerenciamento de vários clusters
Use o ACK para definir e provisionar clusters do EKS, o kro para personalizar as configurações dos clusters de acordo com os padrões organizacionais, e o Argo CD para gerenciar o ciclo de vida e a configuração do cluster. Essa abordagem garante o gerenciamento integral do cluster, abrangendo desde o provisionamento inicial até a operação cotidiana.
Exemplo: defina clusters do EKS usando o ACK e o kro para provisionar e gerenciar a infraestrutura de clusters, definindo padrões organizacionais para rede, políticas de segurança, complementos e outras configurações. Empregue o Argo CD para a criação e para o gerenciamento contínuo de clusters, configurações e atualizações de versões do Kubernetes em toda a frota, fazendo uso de padrões consistentes e do gerenciamento de ciclo de vida automatizado.
Migrações e modernização
Simplifique a migração para o EKS com o provisionamento de recursos de nuvem nativos e fluxos de trabalho de GitOps. Use o ACK para adotar recursos existentes da AWS sem a necessidade de recriá-los, e o Argo CD para operacionalizar as implantações de workloads a partir do Git.
Exemplo: uma equipe em processo de migração do EC2 para o EKS integra bancos de dados do RDS e buckets do S3 utilizando o ACK, e usa o Argo CD para realizar a implantação de aplicações conteinerizadas do Git. O caminho de migração é bem definido e os processos operacionais são padronizados desde o início.
Inicialização de contas e de regiões
Automatize a implementação da infraestrutura entre contas e regiões usando o Argo CD e o ACK de forma integrada. Defina a infraestrutura como código no Git e permita que as funcionalidades gerenciem a implantação e o gerenciamento.
Exemplo: uma equipe responsável pela plataforma mantém repositórios do Git que definem configurações padrão de conta, incluindo VPCs, perfis do IAM, instâncias do RDS e pilhas de monitoramento. O Argo CD implanta essas configurações em novas contas e regiões automaticamente, garantindo a consistência e reduzindo o tempo de configuração manual de dias para minutos.