

 **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
<a name="capability-kubernetes-resources"></a>

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
<a name="_argo_cd_resources"></a>

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](argocd-concepts.md).

## Recursos do kro
<a name="_kro_resources"></a>

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](kro-concepts.md).

## Recursos do ACK
<a name="_ack_resources"></a>

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](ack-concepts.md).

## Limites de recurso
<a name="_resource_limits"></a>

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
<a name="_next_steps"></a>

Para realizar tarefas específicas de cada funcionalidade e acessar configurações avançadas, consulte os seguintes tópicos:
+  [Conceitos do ACK](ack-concepts.md): compreenda os conceitos do ACK e o ciclo de vida dos recursos
+  [Como trabalhar com o Argo CD](working-with-argocd.md): saiba como trabalhar com funcionalidades do Argo CD para fluxos de trabalho de GitOps
+  [Conceitos do kro](kro-concepts.md): compreenda os conceitos do kro e a composição de recursos