Cómo crear CRD en Kubernetes

Como Crear Crd En Kubernetes



Aprendamos a crear el CRD en Kubernetes en este artículo. En este tutorial, lo guiaremos sobre cómo crear CRD en Kubernetes y luego crear un controlador de Kubernetes que se usará para manejar las solicitudes de creación de instancias de CRD. Estaremos demostrando cada paso con la ayuda de ejemplos para ayudarlo a comprender completamente el funcionamiento de la creación del CRD junto con el objeto del controlador para manejar el CRD en Kubernetes. ¡Así que comencemos!

¿Qué es CRD en Kubernetes?

CRD significa Definición de recurso personalizada utilizada para nuevos recursos sin agregar otro servidor API. Para trabajar con CRD, no es necesario que comprenda la agregación de API. Es una función muy poderosa que se introdujo en Kubernetes 1.7 y que se enviará con varios recursos integrados y objetos API. Le permite definir recursos personalizados con un esquema y un nombre de su elección.

Los CRD amplían las capacidades de la API de Kubernetes y superan la instalación predeterminada mediante el uso de definiciones de recursos personalizadas. Al utilizar CRD, puede guiar a Kubernetes de una manera que pueda manejar más que solo contenedores. Puede crear un recurso personalizado de su propia elección y hacerlo declarativo mediante los controladores personalizados. Ahora, aprendamos cómo crear una definición de recurso personalizada y luego diseñar un controlador personalizado para controlar el CRD. Y luego, cómo eliminar CDR para ver su impacto en Kubernetes.







Requisito previo

Antes de pasar a los pasos de creación y eliminación de CRD, asegurémonos de que nuestro sistema cumpla con todas las necesidades de los requisitos previos.



  • Ubuntu 20.04 o cualquier otra versión más reciente para tener un entorno Linux/Unix para trabajar.
  • Clúster de Kubernetes.
  • CLI de Kubectl para usar comandos de kubectl, comunicación de clústeres y administrar el entorno de desarrollo.
  • minikube o cualquier otro área de juegos de Kubernetes para crear los clústeres

Instale estas herramientas, si aún no las ha instalado, antes de continuar con la siguiente sección.



Ahora, pasaremos a la guía paso a paso sobre cómo crear CRD en Kubernetes.





Paso #1: Inicie Kubernetes

Para trabajar con CDR, debe tener un clúster con al menos dos nodos de Kubernetes que no funcionen como hosts del plano de control. Estamos usando el minikube para crear y usar el clúster. Entonces, use el comando que se proporciona a continuación para iniciar el minikube:

> iniciar minikube

Cuando ejecute este comando, obtendrá un resultado similar al que se muestra a continuación:



Paso # 2: Abra o cree un archivo de configuración

Ahora que nuestro minikube está funcionando, abramos el archivo de configuración. El comando 'nano' se usa para abrir los archivos de configuración. Todo lo que necesita hacer es proporcionar el nombre del archivo junto al comando nano seguido de la extensión del archivo y presionar Intro. Aquí tenemos el archivo 'red.yaml' que contiene los detalles de configuración para crear los CRD. Aquí está el comando nano completo que puede usar para abrir el archivo deseado:

> nano rojo.yaml

Cuando ejecute este comando, se abrirá el siguiente archivo en su terminal:

Paso # 3: Cree un recurso de punto final

Los recursos de configuración se han guardado en red.yaml. Lo usaremos para crear el nuevo punto final de la API RESTful con espacio de nombres. Kubectl proporciona el comando 'aplicar' para crear un punto final a partir de un archivo de configuración. Aquí está el comando 'aplicar' completo que se usa para crear la nueva API RESTful con espacio de nombres:

> aplicar kubectl -F rojo.yaml

El punto final creado por este comando se usará para crear el objeto personalizado que controlará el CRD. Se generará el siguiente resultado para el recurso de espacio de nombres:

Paso # 4: Crear un Objeto Personalizado para Controlar el CRD

Los CRD están controlados por los objetos personalizados. Podemos crearlos una vez que se haya creado la definición de recurso personalizado. Los objetos personalizados contienen los campos personalizados de JSON arbitrario. Para crear el objeto personalizado, nuevamente necesitamos un archivo de configuración YAML. Use el comando 'nano' para crear el archivo de configuración YAML:

> nano ct.yaml

Guarde los campos obligatorios con los detalles específicos en el archivo YAML. Los detalles de configuración de muestra se muestran en el siguiente ejemplo:

Ahora, use ese mismo archivo YAML para crear el objeto personalizado. Utilice el comando 'aplicar' para crear el objeto personalizado a partir del archivo YAML especificado. Vea el comando completo dado a continuación:

> aplicar kubectl -F ct.yaml

Tras la ejecución exitosa de este comando, obtendrá el siguiente resultado:

Paso #5: Administrar el CRD con un Objeto Personalizado

Los objetos personalizados se utilizan para administrar los CRD. Entonces, aprendamos cómo podemos utilizar el objeto personalizado creado recientemente para administrar el CRD ya creado. Aquí, vamos a verificar los detalles que contienen el objeto personalizado usando el comando 'obtener'. Vea el comando dado en el fragmento de código a continuación:

> kubectl obtener crontab

Cuando ejecuta este comando en la terminal de minikube, se generará el siguiente resultado:

Si desea verificar los datos sin procesar contenidos en el archivo YAML, puede usar este comando:

> kubectl obtener ct -Él Yaml

Esto mostrará los datos sin procesar en el archivo YAML como el ejemplo que se muestra a continuación:

Así es como podemos crear el CRD y un objeto personalizado para administrar y controlar el CRD creado. Ahora, si desea eliminar el CRD creado, puede seguir el procedimiento que se indica a continuación.

¿Cómo eliminar los CRD creados en Kubernetes?

Los comandos de kubectl le permiten eliminar los CRD en Kubernetes. Cuando intente eliminar el CRD en Kubernetes, los recursos personalizados asociados con él también se eliminarán. El kubectl proporciona el comando 'eliminar' para eliminar cualquier recurso. El comando dado a continuación se usa para eliminar el CRD que hemos creado en los pasos anteriores:

> eliminar kubectl -F rojo.yaml

Tras la ejecución exitosa de este comando, obtendrá el siguiente resultado:

Ahora que se han eliminado el CRD y los objetos personalizados asociados con él, obtendrá un error del servidor si intenta acceder a él. Vea el comando dado a continuación donde estamos tratando de acceder a la API RESTful con espacio de nombres:

> kubeclt obtener crontabs

Dado que se han eliminado los 'crontabs', el servidor generará el error para esta acción. Vea el resultado de este comando a continuación:

Conclusión

Este artículo fue una descripción general rápida de cómo crear la definición de recurso personalizado, cómo crear un objeto personalizado para controlar los CRD y cómo eliminar el CRD de Kubernetes. Con la ayuda de ejemplos de muestra, demostramos cada paso para ayudarlo a comprender el proceso de manera fácil y rápida.