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.
Considerações sobre o ACK para o EKS
Este tópico aborda considerações importantes para o uso da funcionalidade do EKS para o ACK, incluindo a configuração do IAM, os padrões para várias contas e a integração com outras funcionalidades do EKS.
Padrões de configuração do IAM
A funcionalidade do ACK usa um perfil de funcionalidade do IAM para se autenticar na AWS. Escolha o padrão do IAM mais adequado às suas necessidades.
Simples: um único perfil de funcionalidade
Para ambientes de desenvolvimento, testes ou casos de uso simples, atribua todas as permissões necessárias diretamente ao perfil de funcionalidade.
Quando utilizar:
-
Conceitos básicos do ACK
-
Implantações em uma única conta
-
Todos os recursos são gerenciados por uma única equipe
-
Ambientes de desenvolvimento e de teste
Exemplo: adicione permissões do S3 e do RDS ao seu perfil de funcionalidade com condições de marcação de recursos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] } } }, { "Effect": "Allow", "Action": ["rds:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] }, } } ] }
Este exemplo restringe as operações do S3 e do RDS a regiões específicas e requer que os recursos do RDS tenham uma etiqueta ManagedBy: ACK.
Produção: seletores de perfil do IAM
Para ambientes de produção, use os seletores de perfil do IAM para implementar o acesso de privilégio mínimo e o isolamento em nível de namespace.
Quando utilizar:
-
Ambientes de produção
-
Clusters gerenciados por várias equipes
-
Gerenciamento de recursos em várias contas
-
Requisitos de segurança de privilégio mínimo
-
Diferentes serviços que necessitam de permissões distintas
Benefícios:
-
Cada namespace recebe apenas as permissões de que necessita
-
Isolamento de equipes, portanto, a Equipe A não pode usar as permissões da Equipe B
-
Auditoria e conformidade facilitadas
-
Obrigatório para o gerenciamento de recursos entre contas
Para obter a configuração detalhada do seletor de perfil do IAM, consulte Configuração das permissões do ACK.
Integração com outras funcionalidades do EKS
GitOps com Argo CD
Empregue a funcionalidade do EKS para o Argo CD a fim de implantar recursos do ACK de repositórios do Git, permitindo fluxos de trabalho do GitOps para o gerenciamento de infraestrutura.
Considerações:
-
Armazene os recursos do ACK junto aos manifestos da aplicação para um GitOps de ponta a ponta
-
Organize por ambiente, serviço ou tipo de recurso com base na estrutura da sua equipe
-
Use a sincronização automática do Argo CD para reconciliação contínua
-
Habilite a supressão para remover automaticamente recursos excluídos
-
Considere o uso de padrões hub-and-spoke para o gerenciamento da infraestrutura de vários clusters
O GitOps oferece trilhas de auditoria, funcionalidades de reversão e gerenciamento declarativo da infraestrutura. Para saber mais sobre o Argo CD, consulte Como trabalhar com o Argo CD.
Composição de recursos com o kro
Use a funcionalidade do EKS para o kro (Kube Resource Orchestrator) para compor vários recursos do ACK em abstrações de nível superior e APIs personalizadas.
Situações para o uso do kro com o ACK:
-
Criação de padrões reutilizáveis para pilhas de infraestrutura comuns (banco de dados + backup + monitoramento)
-
Desenvolvimento de plataformas de autoatendimento com APIs simplificadas para as equipes destinadas ao trabalho com APIs aplicação
-
Gerenciamento de dependências de recursos e transferência de valores entre recursos (como o ARN de um bucket do S3 para uma função do Lambda)
-
Padronização das configurações de infraestrutura entre as equipes
-
Redução da complexidade ao ocultar detalhes de implementação atrás de recursos personalizados
Padrões de exemplo:
-
Pilha da aplicação: bucket do S3 + fila do SQS + configuração de notificação
-
Configuração do banco de dados: instância do RDS + grupo de parâmetros + grupo de segurança + segredos
-
Rede: VPC + sub-redes + tabelas de rotas + grupos de segurança
O kro gerencia a ordenação de dependências, a propagação de status e o gerenciamento do ciclo de vida dos recursos compostos. Para saber mais sobre o kro, consulte Conceitos do kro.
Organização dos recursos
Organize os recursos do ACK usando namespaces do Kubernetes e etiquetas de recursos da AWS para obter melhor gerenciamento, controle de acesso e rastreamento de custos.
Organização de namespaces
Use namespaces do Kubernetes para a separação lógica de recursos do ACK por ambiente (por exemplo, produção, preparação e desenvolvimento), equipe (como plataforma, dados e ML) ou aplicação.
Benefícios:
-
RBAC com escopo de namespace para controle de acesso
-
Definição de regiões padrão por namespace usando anotações
-
Gerenciamento e limpeza de recursos facilitados
-
Separação lógica alinhada à estrutura organizacional
Marcação de recursos
A funcionalidade ACK do EKS aplica automaticamente as tags padrão a todos os recursos da AWS que ele cria. Essas tags diferem do ACK autogerenciado e fornecem rastreabilidade aprimorada.
Tags padrão aplicadas pela funcionalidade:
| Chave de tag | Descrição |
|---|---|
|
|
A versão do controlador ACK |
|
|
O namespace do Kubernetes do recurso ACK |
|
|
O nome do recurso do Kubernetes |
|
|
O grupo de API do Kubernetes (por exemplo, |
|
|
O ARN da funcionalidade ACK do EKS |
nota
O ACK autogerenciado usa tags padrão diferentes: services.k8s.aws/controller-version e services.k8s.aws/namespace. As tags da funcionalidade usam o prefixo eks: para manter a consistência com outros recursos do EKS.
Tags adicionais recomendadas:
Adicione tags personalizadas para alocação de custos, rastreamento de propriedade e fins organizacionais.
-
Ambiente (por exemplo, produção, preparação e desenvolvimento)
-
Propriedade da equipe ou do departamento
-
Centro de custo para alocação de faturamento
-
Nome da aplicação ou do serviço
Migração de outras ferramentas de infraestrutura como código
Muitas organizações estão encontrando valor na padronização do Kubernetes além da orquestração de suas workloads. Migrar a infraestrutura e o gerenciamento de recursos da AWS para o ACK permite que você padronize o gerenciamento da infraestrutura utilizando as APIs do Kubernetes em conjunto com as workloads da aplicação.
Benefícios da padronização no Kubernetes para infraestrutura:
-
Fonte única de verdade: gerencie tanto aplicações quanto infraestrutura no Kubernetes, permitindo uma prática de GitOps de ponta a ponta
-
Ferramentas unificadas: as equipes usam recursos e ferramentas do Kubernetes em vez de aprender diversas ferramentas e frameworks
-
Reconciliação consistente: o ACK reconcilia continuamente os recursos da AWS assim como o Kubernetes faz com as workloads, detectando e corrigindo desvios em comparação com ferramentas imperativas
-
Composições nativas: com o kro e o ACK juntos, referencie recursos da AWS diretamente nos manifestos da aplicação e de recursos, transferindo strings de conexão e ARNs entre os recursos
-
Operações simplificadas: um único ambiente de gerenciamento para implantações, reversões e observabilidade em todo o sistema
O ACK permite a adoção de recursos da AWS já existentes sem recriá-los, possibilitando migrações sem tempo de inatividade provenientes do CloudFormation, do Terraform ou de recursos externos ao cluster.
Adote um recurso existente:
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name
Após a adoção, o recurso passa a ser gerenciado pelo ACK e pode ser atualizado por meio de manifestos do Kubernetes. É possível realizar a migração de forma incremental, adotando recursos conforme necessário, enquanto mantém as ferramentas de IaC existentes para outros recursos.
O ACK também oferece suporte a recursos somente de leitura. Para recursos gerenciados por outras equipes ou ferramentas que você deseja referenciar, mas não modificar, combine a adoção com a política de exclusão retain e conceda permissões somente de leitura no IAM. Isso permite que as aplicações localizem infraestruturas compartilhadas (por exemplo, VPCs, perfis de funcionalidade do IAM e chaves do KMS) por meio das APIs do Kubernetes, sem o risco de modificações acidentais.
Para obter mais informações sobre a adoção de recursos, consulte Conceitos do ACK.
Políticas de exclusão
As políticas de exclusão controlam o que acontece com os recursos da AWS quando você exclui o recurso correspondente no Kubernetes. Escolha a política adequada com base no ciclo de vida do recurso e em seus requisitos operacionais.
Exclusão (padrão)
O recurso da AWS é excluído quando você exclui o recurso correspondente no Kubernetes. Isso mantém a consistência entre o cluster e a AWS, garantindo que não ocorra o acúmulo de recursos.
Situações para o uso da exclusão:
-
Ambientes de desenvolvimento e de teste nos quais a limpeza é importante
-
Recursos efêmeros vinculados ao ciclo de vida da aplicação (por exemplo, bancos de dados de teste e buckets temporários)
-
Recursos que não devem existir sem a aplicação (por exemplo filas do SQS e clusters do ElastiCache)
-
Otimização de custos com a limpeza automática de recursos não utilizados
-
Ambientes gerenciados com GitOps, nos quais a remoção do recurso no Git deve excluir a infraestrutura
A política de exclusão padrão alinha-se ao modelo declarativo do Kubernetes, ou seja, o que está no cluster corresponde ao que existe na AWS.
Reter
O recurso da AWS é mantido quando você exclui o recurso correspondente no Kubernetes. Esta opção protege dados críticos e permite que os recursos permaneçam ativos mesmo após a remoção da representação no Kubernetes.
Situações para o uso da retenção:
-
Bancos de dados de produção com dados críticos que devem ser mantidos apesar de mudanças no cluster
-
Buckets de armazenamento de longo prazo com requisitos de conformidade ou auditoria
-
Recursos compartilhados usados por diversas aplicações ou equipes
-
Recursos em processo de migração para diferentes ferramentas de gerenciamento
-
Cenários de recuperação de desastres em que você deseja preservar a infraestrutura
-
Recursos com dependências complexas que exigem uma desativação cuidadosa
apiVersion: rds.services.k8s.aws/v1alpha1 kind: DBInstance metadata: name: production-db annotations: services.k8s.aws/deletion-policy: "retain" spec: dbInstanceIdentifier: prod-db # ... configuration
Importante
Recursos retidos continuam a gerar custos na AWS e devem ser excluídos manualmente da AWS quando não forem mais necessários. Use a marcação de recursos para rastrear recursos retidos para limpeza posterior.
Para saber mais sobre as políticas de exclusão, consulte Conceitos do ACK.
Documentação original
Para obter informações detalhadas sobre o uso do ACK:
-
Guia de uso do ACK
: criação e gerenciamento de recursos -
Referência da API do ACK
: documentação completa da API para todos os serviços -
Documentação do ACK
: documentação abrangente para o usuário
Próximas etapas
-
Configuração das permissões do ACK: configure permissões do IAM e padrões para várias contas
-
Conceitos do ACK: compreenda os conceitos do ACK e o ciclo de vida dos recursos
-
Solução de problemas em funcionalidades do ACK: solucione problemas do ACK
-
Como trabalhar com o Argo CD: implante recursos do ACK com GitOps
-
Conceitos do kro: componha recursos do ACK em abstrações de nível superior