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.
Implantação de recursos da AWS usando o Kubernetes com o AWS Controllers for Kubernetes (ACK)
O AWS Controllers for Kubernetes (ACK) permite definir e gerenciar recursos de serviços da AWS diretamente do Kubernetes. Com o AWS Controllers for Kubernetes (ACK), é possível gerenciar recursos de workloads e de infraestrutura de nuvem por meio de recursos personalizados do Kubernetes, juntamente com as workloads das aplicações, usando APIs e ferramentas conhecidas do Kubernetes.
Com as funcionalidades do EKS, o ACK é totalmente gerenciado pela AWS, o que remove a necessidade de instalar, fazer a manutenção e escalar os controladores do ACK em seus clusters.
Funcionamento do ACK
O ACK converte especificações de recursos personalizados do Kubernetes em chamadas de API da AWS. Quando você cria, atualiza ou exclui um recurso personalizado do Kubernetes que representa um recurso de serviço da AWS, o ACK realiza as chamadas de API da AWS necessárias para criar, atualizar ou excluir o recurso da AWS.
Cada recurso da AWS compatível com o ACK conta com sua própria definição de recurso personalizado (CRD, na sigla em inglês), que define o esquema da API do Kubernetes para especificar a configuração. Por exemplo, o ACK fornece CRDs para o S3, incluindo buckets, políticas de bucket e outros recursos do S3.
O ACK realiza a reconciliação contínua entre o estado atual dos seus recursos da AWS e o estado desejado especificado nos recursos personalizados do Kubernetes Se um recurso se desviar do estado desejado, o ACK detecta essa divergência e executa ações corretivas para restabelecer o alinhamento. As alterações nos recursos do Kubernetes são refletidas imediatamente no estado dos recursos da AWS, enquanto a detecção passiva de desvios e a correção de alterações diretamente nos recursos da AWS podem demorar até dez horas (o período de ressincronização), embora normalmente ocorram muito antes.
Exemplo de manifesto de recurso do bucket do S3
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-ack-bucket spec: name:my-unique-bucket-name
Ao aplicar esse recurso personalizado ao cluster, o ACK cria um bucket do Amazon S3 na sua conta, se ele ainda não existir. As alterações posteriores nesse recurso, por exemplo, a definição de uma camada de armazenamento diferente da camada padrão ou a adição de uma política, serão aplicadas ao recurso do S3 na AWS. Quando esse recurso é excluído do cluster, o bucket do S3 na AWS é excluído por padrão.
Benefícios do ACK
O ACK disponibiliza o gerenciamento de recursos da AWS de forma nativa no Kubernetes, permitindo que você gerencie recursos da AWS com as mesmas APIs e ferramentas do Kubernetes usadas pelas suas aplicações. Essa abordagem unificada simplifica o fluxo de trabalho de gerenciamento da infraestrutura, eliminando a necessidade de alternar entre diferentes ferramentas ou de aprender sistemas distintos de infraestrutura como código. Seus recursos da AWS são definidos declarativamente em manifestos do Kubernetes, permitindo fluxos de trabalho de GitOps e práticas de infraestrutura como código que se integram perfeitamente aos processos de desenvolvimento existentes.
O ACK realiza a reconciliação contínua entre o estado desejado e o estado atual dos recursos da AWS, corrigindo desvios e garantindo a consistência em toda a infraestrutura. Essa reconciliação contínua garante que alterações imperativas realizadas de forma externa aos recursos da AWS sejam revertidas automaticamente para o estado definido em sua configuração, preservando a integridade da infraestrutura como código. É possível configurar o ACK para gerenciar recursos em diversas contas e regiões da AWS, possibilitando arquiteturas complexas em várias contas sem a necessidade de ferramentas adicionais.
Para organizações que estão no processo de migração de outras ferramentas de gerenciamento de infraestrutura, o ACK oferece suporte à adoção de recursos, permitindo que você traga recursos da AWS existentes para o gerenciamento do ACK sem precisar recriá-los. O ACK ainda disponibiliza recursos somente para leitura, permitindo a observação de recursos da AWS sem permissão para modificá-los, além de anotações para, opcionalmente, reter recursos da AWS mesmo quando o recurso do Kubernetes é excluído do cluster.
Para saber mais informações e começar a usar a funcionalidade do EKS para o ACK, consulte Conceitos do ACK e Considerações sobre o ACK para o EKS.
Serviços da AWS compatíveis
O ACK oferece suporte a uma ampla variedade de serviços da AWS, incluindo, mas não se limitando a:
-
Amazon EC2
-
Amazon S3
-
Amazon RDS
-
Amazon DynamoDB
-
Amazon ElastiCache
-
Amazon EKS
-
Amazon SQS
-
Amazon SNS
-
AWS Lambda
-
IAM da AWS
Todos os serviços da AWS listados como disponíveis para o público geral na origem são compatíveis com a funcionalidade do EKS para o ACK. Consulte a lista completa de serviços da AWS compatíveis
Integração com outras funcionalidades gerenciadas do EKS
O ACK pode ser integrado a outras funcionalidades gerenciadas do EKS.
-
Argo CD: use o Argo CD para gerenciar a implantação de recursos do ACK em diversos clusters, possibilitando fluxos de trabalho de GitOps para a infraestrutura da AWS.
-
Embora o ACK aproveite os benefícios de GitOps quando combinado com o Argo CD, ele não depende de integração com o Git.
-
-
kro (Kube Resource Orchestrator): use o kro para combinar recursos complexos a partir de recursos do ACK, criando abstrações de nível superior que simplificam o gerenciamento de recursos.
-
Com o kro, é possível criar recursos personalizados compostos que definem tanto recursos do Kubernetes quanto recursos da AWS. Esses recursos personalizados podem ser usados pelos membros da equipe para implantar aplicações complexas de forma rápida.
-
Conceitos básicos do ACK
Para começar a usar a funcionalidade do EKS para o ACK:
-
Crie e configure um perfil do IAM da funcionalidade com as permissões necessárias para que o ACK gerencie recursos da AWS em seu nome.
-
Crie um recurso da funcionalidade do ACK em seu cluster do EKS por meio do Console da AWS, da AWS CLI ou da ferramenta de infraestrutura como código de sua preferência.
-
Aplique os recursos personalizados do Kubernetes no cluster para começar a gerenciar os recursos da AWS diretamente no Kubernetes.