

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Recursos de Kubernetes de las capacidades
<a name="capability-kubernetes-resources"></a>

Una vez que active una capacidad en el clúster, por lo general, interactuará con ella mediante la creación y administración de los recursos personalizados de Kubernetes en el clúster. Cada capacidad proporciona su propio conjunto de definiciones de recursos personalizados (CRD) que amplían la API de Kubernetes con funcionalidades específicas de cada capacidad.

## Recursos de Argo CD
<a name="_argo_cd_resources"></a>

Al activar la capacidad de Argo CD, puede crear y administrar los siguientes recursos de Kubernetes:

 **Aplicación**   
Define una implementación desde un repositorio de Git a un clúster de destino. Los recursos de `Application` especifican el repositorio de origen, el espacio de nombres de destino y la política de sincronización. Puede crear hasta 1000 recursos de `Application` por instancia de capacidad de Argo CD.

 **ApplicationSet**   
Genera varios recursos de `Application` a partir de plantillas, lo que permite implementaciones en varios clústeres y entornos. Los recursos de `ApplicationSet` utilizan generadores para crear recursos de `Application` de forma dinámica en función de listas de clústeres, directorios de Git u otros orígenes.

 **AppProject**   
Proporciona agrupamiento lógico y control de acceso a los recursos de `Application`. Los recursos de `AppProject` definen qué repositorios, clústeres y espacios de nombres pueden usar los recursos de `Application`, lo que permite establecer límites de seguridad y de tenencia múltiple.

Ejemplo de recurso de `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 obtener más información sobre los conceptos y recursos de Argo CD, consulte [Conceptos de Argo CD](argocd-concepts.md).

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

Al activar la capacidad de kro, puede crear y administrar los siguientes recursos de Kubernetes:

 **ResourceGraphDefinition (RGD)**   
Define una API personalizada que compone varios Kubernetes y recursos de AWS en una abstracción de nivel superior. Los equipos de plataformas crean recursos de `ResourceGraphDefinition` para proporcionar patrones reutilizables con barreras de protección.

 **Instancias de recursos personalizados**   
Tras crear un recurso de `ResourceGraphDefinition`, puede crear instancias de la API personalizada definida por la `ResourceGraphDefinition`. kro crea y administra automáticamente los recursos especificados en la `ResourceGraphDefinition`.

Ejemplo de recurso de `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
```

Ejemplo de instancia de `WebApplication`:

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

Al aplicar esta instancia, kro crea automáticamente los recursos de `Deployment` y `Service` definidos en la `ResourceGraphDefinition`.

Para obtener más información sobre los conceptos y recursos de kro, consulte [Conceptos de kro](kro-concepts.md).

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

Al activar la capacidad de ACK, puede crear y administrar los recursos de AWS mediante los recursos personalizados de Kubernetes. ACK proporciona más de 200 CRD para más de 50 servicios de AWS, lo que le permite definir los recursos de AWS junto con sus cargas de trabajo de Kubernetes y administrar los recursos de infraestructura de AWS dedicados con Kubernetes.

Ejemplos de recursos de ACK:

 **Bucket de S3**   
 Los recursos de `Bucket` crean y administran buckets de Amazon S3 con políticas de control de versiones, cifrado y ciclo de vida.

 **DBInstance de RDS**   
 Los recursos de `DBInstance` aprovisionan y administran las instancias de bases de datos de Amazon RDS con copias de seguridad automatizadas y plazos de mantenimiento.

 **Tabla de DynamoDB**   
 Los recursos de `Table` crean y administran tablas de DynamoDB con capacidad aprovisionada o bajo demanda.

 **Rol de IAM**   
 Los recursos de `Role` definen los roles de IAM con políticas de confianza y políticas de permisos para el acceso a los servicios de AWS.

 **Función Lambda**   
 Los recursos de `Function` crean y administran funciones de Lambda con configuración de código, tiempo de ejecución y rol de ejecución.

Ejemplo de especificación de un recurso de `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 obtener más información sobre los conceptos y recursos de ACK, consulte [Conceptos de ACK](ack-concepts.md).

## Límites de recursos
<a name="_resource_limits"></a>

Las capacidades de EKS tienen los siguientes límites de recursos:

 **Límites de uso de Argo CD**:
+ Máximo de 1000 recursos de `Application` por instancia de capacidad de Argo CD
+ Máximo de 100 clústeres remotos configurados por instancia de capacidad de Argo CD

 **Límites de configuración de recursos**:
+ Máximo 150 recursos de Kubernetes por recurso de `Application` en Argo CD
+ Máximo 64 recursos de Kubernetes por `ResourceGraphDefinition` en kro

**nota**  
Estos límites se aplican a la cantidad de recursos administrados por cada instancia de capacidad. Si necesita límites más elevados, puede implementar capacidades en varios clústeres.

## Siguientes pasos
<a name="_next_steps"></a>

Para obtener información sobre tareas específicas de las capacidades y configuración avanzada, consulte los siguientes temas:
+  [Conceptos de ACK](ack-concepts.md): descripción de los conceptos de ACK y el ciclo de vida de los recursos
+  [Uso de Argo CD](working-with-argocd.md): uso de las capacidades de Argo CD para flujos de trabajo de GitOps
+  [Conceptos de kro](kro-concepts.md): descripción de los conceptos de kro y la composición de recursos