¿Qué es CRD en Kubernetes??
CRD significa la definición de recursos personalizados utilizados para nuevos recursos sin agregar otro servidor API. Para trabajar con CRD, no tiene que entender la agregación de API. Es una característica muy poderosa introducida en Kubernetes 1.7 para ser enviado con varios recursos incorporados y objetos API. Le permite definir recursos personalizados con un esquema y nombre de su elección.
CRDS extiende las habilidades de la API de Kubernetes que exceden la instalación predeterminada utilizando las definiciones de recursos personalizados. 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 utilizando los controladores personalizados. Ahora, aprendamos cómo crear una definición de recursos personalizado y luego diseñe 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 satisfaga todas las necesidades de los requisitos previos.
Instale estas herramientas, si aún no las ha instalado, antes de continuar a 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 CDRS, debe tener un clúster con al menos dos nodos de Kubernetes que no funcionan como hosts de plano de control. Estamos utilizando el minikube para crear y usar el clúster. Entonces, use el comando que se proporciona a continuación para iniciar el minikube:
> Minikube Start
Cuando ejecute este comando, obtendrá una salida similar a la que se da a continuación:
Paso # 2: Abra o cree un archivo de configuración
Ahora que nuestro minikube está en funcionamiento, permítanos abrir 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 presione Enter. Aquí tenemos el 'rojo.Archivo Yaml 'que contiene los detalles de configuración para crear el CRDS. Aquí está el comando Nano completo que puede usar para abrir su archivo deseado:
> nano rojo.yaml
Cuando ejecuta este comando, el siguiente archivo se abrirá en su terminal:
Paso # 3: crear un recurso de punto final
Los recursos de configuración se han guardado en rojo.yaml. Usaremos eso para crear el nuevo punto final de API RESTFOR con un conjunto de nombres. Kubectl proporciona el comando 'Aplicar' para crear un punto final desde un archivo de configuración. Aquí está el comando completo 'Aplicar' que se utiliza para crear la nueva API RESTFOR con un conjunto de nombres:
> kubectl aplicar -f rojo.yaml
El punto final creado por este comando se usará para crear el objeto personalizado que controlará el CRD. La siguiente salida se generará para el recurso de nombres:
Paso # 4: Cree 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 recursos personalizados. 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 requeridos con los detalles específicos en el archivo YAML. Los detalles de configuración de la muestra se muestran en la muestra a continuación:
Ahora, use ese mismo archivo YAML para crear el objeto personalizado. Use el comando 'Aplicar' para crear el objeto personalizado desde el archivo YAML especificado. Vea el comando completo que se da a continuación:
> kubectl aplicar -f ct.yaml
Tras la ejecución exitosa de este comando, obtendrá la siguiente salida:
Paso # 5: Administre el CRD con un objeto personalizado
Los objetos personalizados se utilizan para administrar los CRD. Entonces, aprendamos cómo podemos utilizar el objeto personalizado recientemente creado para administrar el CRD ya creado. Aquí, vamos a verificar los detalles que contienen el objeto personalizado utilizando el comando 'Get'. Vea el comando dado en el fragmento de código a continuación:
> Kubectl obtiene crontab
Cuando ejecuta este comando en el terminal de minikube, se generará la siguiente salida:
Si desea verificar los datos sin procesar contenidos en el archivo YAML, puede usar este comando:
> Kubectl Get Ct -o Yaml
Esto mostrará los datos sin procesar en el archivo YAML como la muestra que se proporciona 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 da a continuación.
Cómo eliminar los CRD creados en Kubernetes?
Los comandos 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 que se proporciona a continuación se utiliza para eliminar el CRD que hemos creado en los pasos anteriores:
> kubectl eliminar -f rojo.yaml
Tras la ejecución exitosa de este comando, obtendrá el siguiente resultado:
Ahora que el CRD y los objetos personalizados asociados con él se han eliminado, recibirá un error del servidor si intenta acceder a él. Vea el comando que se da a continuación donde estamos tratando de acceder a la API RESTFUL APACADO DE NAME:
> kubeclt obtener crontabs
Dado que se ha eliminado el 'crontabs', el servidor aumentará el error para esta acción. Vea la salida de este comando que se da a continuación:
Conclusión
Este artículo fue una descripción general rápida de cómo crear la definición de recursos 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 muestras, demostramos cada paso para ayudarlo a comprender el proceso de manera fácil y rápida.