Recursos da funcionalidade do Kubernetes - 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.

Recursos da funcionalidade do Kubernetes

Após habilitar uma funcionalidade no cluster, você passará a interagir com ela principalmente por meio da criação e do gerenciamento de recursos personalizados do Kubernetes no cluster. Cada funcionalidade fornece seu próprio conjunto de definições de recursos personalizados (CRDs, na sigla em inglês) que ampliam a API do Kubernetes com funcionalidades específicas.

Recursos do Argo CD

Quando você habilita a funcionalidade do Argo CD, torna-se possível criar e gerenciar os seguintes recursos do Kubernetes:

Aplicação

Define a implantação de um repositório do Git para um cluster de destino. Os recursos do tipo Application especificam o repositório de origem, o namespace de destino e a política de sincronização. É possível criar até mil recursos do tipo Application para cada instância da funcionalidade do Argo CD.

ApplicationSet

Gera diversos recursos do tipo Application baseados em modelos, permitindo implantações em vários clusters e diversos ambientes. Os recursos do tipo ApplicationSet utilizam geradores para criar recursos do tipo Application dinamicamente com base em listas de clusters, diretórios do Git ou outras fontes.

AppProject

Fornece agrupamento lógico e controle de acesso para recursos do tipo Application. Os recursos do tipo AppProject definem quais repositórios, clusters e namespaces os recursos do tipo Application podem usar, permitindo multilocação e limites de segurança.

Exemplo de recurso do tipo Application:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/org/repo targetRevision: main path: manifests destination: server: https://kubernetes.default.svc namespace: production

Para obter mais informações sobre recursos e conceitos do Argo CD, consulte Conceitos do Argo CD.

Recursos do kro

Quando você habilita a funcionalidade do kro, torna-se possível criar e gerenciar os seguintes recursos do Kubernetes:

ResourceGraphDefinition (RGD)

Define uma API personalizada que compõe diversos recursos do Kubernetes e da AWS em uma abstração de nível superior. As equipes responsáveis pela plataforma criam recursos do tipo ResourceGraphDefinition para disponibilizar padrões reutilizáveis com barreiras de proteção.

Instâncias de recursos personalizados

Após criar um recurso do tipo ResourceGraphDefinition, você pode criar instâncias da API personalizada definida por ResourceGraphDefinition. O kro cria e gerencia automaticamente os recursos especificados na ResourceGraphDefinition.

Exemplo de recurso do tipo ResourceGraphDefinition:

apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment # ... deployment spec - id: service template: apiVersion: v1 kind: Service # ... service spec

Exemplo de instância do tipo WebApplication:

apiVersion: v1alpha1 kind: WebApplication metadata: name: my-web-app namespace: default spec: name: my-web-app replicas: 3

Ao aplicar esta instância, o kro cria automaticamente os recursos Deployment e Service definidos na ResourceGraphDefinition.

Para obter mais informações sobre recursos e conceitos do kro, consulte Conceitos do kro.

Recursos do ACK

Quando você habilita a funcionalidade do ACK, torna-se possível criar e gerenciar recursos da AWS por meio de recursos personalizados do Kubernetes. O ACK fornece mais de 200 CRDs para mais de 50 serviços da AWS, permitindo definir recursos da AWS em conjunto com workloads do Kubernetes e gerenciar recursos dedicados de infraestrutura da AWS com o Kubernetes.

Exemplos de recursos do ACK:

Bucket do S3

Os recursos do tipo Bucket realizam a criação e o gerenciamento de buckets do Amazon S3 com políticas de ciclo de vida, criptografia e versionamento.

DBInstance do RDS

Os recursos do tipo DBInstance realizam o provisionamento e o gerenciamento de instâncias de bancos de dados do Amazon RDS com janelas de manutenção e backups automáticos.

Tabela do DynamoDB

Os recursos do tipo Table realizam a criação e o gerenciamento de tabelas do DynamoDB com capacidade sob demanda ou provisionada.

Perfil do IAM

Os recursos do tipo Role definem os perfis do IAM com as políticas de confiança e de permissão para acesso aos serviços da AWS.

Função do Lambda

Os recursos do tipo Function realizam a criação e o gerenciamento de funções do Lambda, incluindo a configuração de código, runtime e perfil de execução.

Exemplo de especificação para um recurso do tipo Bucket:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-app-bucket spec: name: my-unique-bucket-name-12345 versioning: status: Enabled encryption: rules: - applyServerSideEncryptionByDefault: sseAlgorithm: AES256

Para obter mais informações sobre recursos e conceitos do ACK, consulte Conceitos do ACK.

Limites de recurso

As funcionalidades EKS têm os seguintes limites de recursos:

Limites de uso do Argo CD:

  • Máximo de mil recursos do tipo Application por instância da funcionalidade do Argo CD

  • Máximo de cem clusters remotos configurados por instância da funcionalidade do Argo CD

Limites de configuração de recursos:

  • Máximo de 150 recursos do Kubernetes por recurso do tipo Application no Argo CD

  • Máximo de 64 recursos do Kubernetes por ResourceGraphDefinition no kro

nota

Estes limites são válidos para a quantidade de recursos gerenciados por cada instância de funcionalidade. Caso necessite de limites superiores, é possível fazer a implantação das funcionalidades em diversos clusters.

Próximas etapas

Para realizar tarefas específicas de cada funcionalidade e acessar configurações avançadas, consulte os seguintes tópicos: