Puntos clave: Las Definiciones Personalizadas de Recursos (CRDs) de Kubernetes Permiten a los usuarios Crea objetos API personalizados, mejorando la funcionalidad de Kubernetes. Esta guía detalla la creación, gestión y utilización de CRDs.
- Los CRDs Define recursos personalizados dentro de Kubernetes.
- Crear un CRD implica especificar sus metadatos, versión y alcance.
- Se pueden añadir mandos personalizados para un enfoque declarativo.
En esta publicación, sons vamos a hablar sobre las Definiciones Personalizadas de Recursos (CRDs). Vamos a repasar:
- Qué son los CRD
- Cómo se son utilizados
- Cómo Crea
- Algunos consejos y trucos
Para continuar, supongo que te tienes conocimientos previos de Kubernetes, kubectl y tienes minikube funcionando.
Conceptos de CRD en K8S
Para empezar a entender qué están la CRD, debemos repasar un par de conceptos en Kubernetes:
- Un recurso está un punto final en la API de k8s que te permite almacenar un objeto API de cualquier tipo.
- Un recurso personalizado te permite Crea tus propios objetos API y Define los tuyos, como Pod, Deployment, ReplicaSet, etc.
Recurso Personalizado te permite extiende capacidades de Kubernetes añadiendo cualquier tipo de objeto API útil para tu aplicación. Definición de Recurso Personalizada están qué te utiliza Define un recurso personalizado. Esto están una forma poderosa de extiende capacidades de Kubernetes más allá de la instalación predeterminada.
Cómo Crea un CRD
El manifiesto a continuación muestra un ejemplo de CRD crd.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: appconfigs.stable.example.com
spec:
group: stable.example.com
versions:
- name: v1
served: true
storage: true
scope: Namespaced
names:
plural: appconfigs
singular: appconfig
kind: AppConfig
shortNames:
- ac
Vamos a explicar qué Crea el CRD anterior:
- Las dos primeras líneas definen qué es la aversión y son decimos que queremos Crea una definición personalizada de recursos.
- El campo de metadatos nos ayuda a Define cuál es el nombre del recurso. En nuestro caso, appconfigs (plural).
- El grupo de especialización nos ayudó a Define cuál será el nombre del grupo.
- La versión de especificación nos ayuda a Define la versión. Decimos que son están v1, y queremos que esta versión sea nuestra versión de almacenamiento.
- Como te Ve, podemos Define una versión de nuestro CRD y solo una versión puede ser de almacenamiento a la vez, así que tenlo en cuenta. Luego nos aseguramos de que este CRD están un namespaced y no abarque a todo el clúster. Esto nos permitió Crea el CRD para un espacio de nombres específico o para todo el clúster.
- A continuación, definimos cuál será el nombre singular y plural de nuestro CRD.
- Por último, definimos el nombre del tipo y el nombre corto. Luego podemos Crea con "kubectl Crea -f crd.yaml". El nuevo endpoint de API RESTful con espacio de nombres para nuestro CRD se encontrará en /apis/stable.example.com/v1/namespaces/*/appconfigs/
Así que probablemente sons preguntándonos vale, esto está bueno, pero ¿cómo están útil? Para utilizar el CRD anterior, Crea un manifiesto usando el tipo que creamos con el CRD. Por ejemplo, tenemos my-kind.yaml
apiVersion: "stable.example.com/v1"
kind: AppConfig
metadata:
name: demo-appconfig
spec:
uri: "some uri"
Command: "some command"
image: my-image
Como te puede Ve, son usando el tipo que definimos en nuestro CRD, luego definimos los campos que queremos que tenga nuestro objeto tipo. Aquí queremos Define, el uri, el comando y la imagen para nuestra aplicación. Ahora, si ejecutamos "kubectl Crea -f my-kind.yaml", nuestra aplicación puede consumir los datos que creamos con el manifiesto anterior. Para Ve qué está pasando, podemos ejecutar "kubectl Obtén ac -o yaml", podemos Ve información detallada de lo que acabamos de crear. Fíjate cómo son usamos el nombre corto (ac) que definimos en nuestro CRD.
Cómo eliminar un CRD
Para eliminar el CRD y los recursos que creamos, simplemente ejecuta kubectl delete igual que con cualquier otro recurso. están importante saber que el CRD anterior están solo datos que pueden almacenarse y recuperarse, por lo tanto, no nos proporciona una API completamente declarativa. La forma de Haz este recurso completamente declarativo están añadir un controlador personalizado, cuya tarea están asegurarse de Haz que el estado actual y el deseado son siempre sincronizados. Un ejemplo están algo como un controlador de replicación.
Los CRDs amplían Kubernetes
CRD están una forma de extiende Kubernetes que nos permite Crea un recurso personalizado a nuestra elección y hacerlo declarativo con la ayuda de un controlador personalizado.
Recursos adicionales
Para más información sobre Kubernetes, explora estos recursos:
Guía Kubernetes
- ¿Qué es Kubernetes (K8s)? Un tutorial básico de Kubernetes
- Mejores prácticas de Kubernetes para mejorar la eficiencia del clúster
- Mejores Prácticas: Cómo Diseñar Aplicaciones para Kubernetes
- Kubernetes Pods: Una introducción
- Kubernetes ReplicaSets: Una breve introducción
- Despliegues de Kubernetes completamente explicados
- Cómo utilizar y gestionar los DaemonSets de Kubernetes
- Cómo funcionan los servicios de Kubernetes
- Uso de Kubernetes Port, TargetPort y NodePort
- Creación y uso de ConfigMaps en Kubernetes
- Introducción a Kubernetes Secrets
- Fundamentos de las redes de Kubernetes
- Explicación de Kubernetes Ingress
- Introducción a las Listas de Helm de Kubernetes
- ¿Qué están el patrón de operador Kubernetes?
- Despliegue de PostgreSQL como un StatefulSet en Kubernetes
- Definición de Recursos Personalizados (CRDs) de Kubernetes Explicada
- 3 Patrones Kubernetes para aplicaciones nativas en la nube
- Explicación de los recursos de cómputo de Kubernetes
- Kubernetes Security for DevOps Pipelines
- Uso de spinnaker con Kubernetes para entrega continua
- Multi-Clústeres Kubernetes: Cómo y por qué utilizarlos
- Monitorización de Kubernetes: Una guía completa
- Kubernetes vs Docker: Una comparación rápida
- Kubernetes vs Docker Swarm: Comparando herramientas de orquestación de contenedores
- Kubernetes vs OpenShift: ¿Cuál es la diferencia?
- Certificaciones Kubernetes: Cómo y por qué Obtén la certificación
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.