¿Qué son los Recursos API en Kubernetes?

 Cuando hablamos de Recursos API para Cargas de Trabajo (Workloads) en Kubernetes, nos referimos a los recursos que interactúan con la API RESTful de Kubernetes. Esta API es el núcleo que gestiona todo en el clúster de Kubernetes, permitiendo a los usuarios, aplicaciones, y controladores internos realizar acciones sobre los componentes de Kubernetes a través de solicitudes HTTP.

Los Recursos API son las entidades que defines y administras en Kubernetes para gestionar y orquestar las aplicaciones y servicios. Ejemplos de estos recursos API incluyen Pods, Deployments, ReplicaSets, Services, Ingress, entre otros. Estos recursos son gestionados mediante interacciones con la API RESTful de Kubernetes a través de comandos como kubectl o directamente enviando solicitudes HTTP al servidor API.

Por qué se llaman Recursos API

El término "Recursos API" hace referencia a:

  • RESTful API: Kubernetes utiliza un modelo RESTful, donde los recursos son accesibles mediante un conjunto de operaciones estándar como GET, POST, PUT, y DELETE. Cada recurso tiene una URI (Uniform Resource Identifier), que es la dirección donde puede ser consultado o modificado.

  • Interacción con la API: Cada vez que creas, actualizas, o consultas un recurso como un Deployment, estás interactuando con la API de Kubernetes. Por ejemplo, cuando ejecutas kubectl apply -f deployment.yaml, kubectl realiza una solicitud HTTP a la API de Kubernetes, que gestiona la operación sobre ese recurso.

Ejemplo de Interacción con la API

Supón que creas un pod usando el siguiente manifiesto YAML:

apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: nginx-container image: nginx

Cuando ejecutas:

kubectl apply -f pod.yaml

El comando kubectl traduce esta acción en una solicitud POST a la API de Kubernetes. El servidor API toma el manifiesto y lo convierte en un recurso administrado por el clúster.

Recursos API Comunes para Cargas de Trabajo

Algunos de los recursos API más comunes para administrar cargas de trabajo incluyen:

  • Pods: La unidad mínima de ejecución en Kubernetes.
  • Deployments: Gestionan la actualización y escalabilidad de Pods.
  • ReplicaSets: Aseguran que un número específico de Pods esté corriendo.
  • DaemonSets: Aseguran que un Pod se ejecute en cada nodo del clúster.
  • StatefulSets: Se usan para aplicaciones que requieren mantener el estado.

Cada uno de estos recursos tiene un conjunto de operaciones que se pueden realizar a través de la API RESTful. 

  
 Más información aquí:  Gestión de Cargas de Trabajo en Kubernetes. Bloque 2. Tema 2.1 del CKA.

Comentarios