Definiciones de recursos personalizados (CRD)
Aprenda cómo las Custom Resource Definitions amplían la API de Kubernetes con sus propios tipos de recursos, la base sobre la que se construyen los Operators.
Definiciones de recursos personalizados (CRD) es una lección gratuita de Kubernetes Basics en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kubernetes Basics, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kubernetes Basics incluye 4 lecciones en total.
Ampliar la API de Kubernetes
Los objetos integrados, como Pods y Deployments, no son el límite. Con una definición de recurso personalizado (CRD) puede enseñar a Kubernetes tipos de recursos completamente nuevos.
¿Qué es un recurso personalizado?
Un recurso personalizado (CR) es una instancia de un tipo que usted ha definido. Una vez instalada una CRD, puede crear CRs con kubectl, igual que los objetos nativos.
Anatomía de una CRD
Una CRD declara el nuevo kind, su grupo de API, su versión y su ámbito (con espacio de nombres o de clúster).
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backups.data.example.com
spec:
group: data.example.com
scope: Namespaced
names:
plural: backups
singular: backup
kind: BackupDefinir el esquema
Un esquema de OpenAPI valida los campos de su recurso personalizado y rechaza las especificaciones no válidas en el momento de crearlas.
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
schedule:
type: string
retention:
type: integerCrear un recurso personalizado
Después de aplicar la CRD, puede crear instancias del nuevo tipo.
apiVersion: data.example.com/v1
kind: Backup
metadata:
name: nightly-db
spec:
schedule: '0 2 * * *'
retention: 7Trabajar con CRs mediante kubectl
Los recursos personalizados son ciudadanos de primera clase. Puede enumerarlos, describirlos y eliminarlos con comandos conocidos.
kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-dbNombres abreviados y columnas de impresión
Puede definir nombres abreviados y columnas de tabla personalizadas para que resulte cómodo trabajar con los CRs.
names:
shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
type: string
jsonPath: .spec.scheduleLas CRD solo son datos
Por sí sola, una CRD solo almacena datos en etcd. Nada actúa sobre ellos. Para que un Backup se realice de verdad, necesita un controlador que supervise estos recursos.
La relación con los Operators
Un Operator es un controlador junto con una o más CRD. La CRD define el estado deseado; el controlador reconcilia continuamente la realidad para que coincida con él. Las CRD son la base sobre la que se sustentan los Operators.
Versionar las CRD
Las CRD admiten varias versiones con conversión, lo que le permite evolucionar su API. Exactamente una versión se marca como versión de almacenamiento en etcd.
versions:
- name: v1beta1
served: true
storage: false
- name: v1
served: true
storage: trueCuándo usar CRD
- Quiere modelar de forma declarativa un concepto del dominio (Backup, Database, Certificate)
- Está creando un Operator para automatizar operaciones
- Quiere que los usuarios administren su aplicación con flujos de trabajo conocidos de kubectl
Comprobación rápida
Compruebe cuánto entiende sobre las CRD.
Resumen
Ha aprendido que las CRD amplían la API de Kubernetes con tipos personalizados, validados mediante un esquema de OpenAPI y administrados con comandos normales de kubectl. Una CRD por sí sola solo almacena datos; al combinarla con un controlador se obtiene un Operator que reconcilia el estado deseado.
Preguntas frecuentes
¿La lección «Definiciones de recursos personalizados (CRD)» es gratis?
Sí — el texto completo de «Definiciones de recursos personalizados (CRD)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kubernetes Basics, actualiza a CoddyKit PRO. El curso de Kubernetes Basics incluye 4 lecciones en total.
¿Qué aprenderé en «Definiciones de recursos personalizados (CRD)»?
Aprenda cómo las Custom Resource Definitions amplían la API de Kubernetes con sus propios tipos de recursos, la base sobre la que se construyen los Operators. Practicas Kubernetes Basics con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kubernetes Basics?
No se requiere experiencia previa. Kubernetes Basics en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Definiciones de recursos personalizados (CRD)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kubernetes Basics?
Sí. Cada lección de Kubernetes Basics incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- StatefulSets para aplicaciones con estado
- DaemonSets para tareas específicas de nodos
- Comprender los Operators de Kubernetes
- Definiciones de recursos personalizados (CRD)