¿Qué es un servicio sin cabeza en Kubernetes??
En Kubernetes, se crea un servicio sin cabeza sin el uso de una dirección IP de clúster. En algunos casos, no necesitamos una sola IP de servicio para el clúster, por lo que utilizamos el servicio sin cabeza de Kubernetes. En esta configuración sin cabeza, el servicio aún se puede utilizar para mantener la identidad de la red y DNS para una colección de vainas incluso cuando no se puede acceder a través del clúster IP. Principalmente usamos sin cabeza cuando se requirió acceso individual de POD sin el uso de un proxy. No podemos usar un equilibrador de carga aquí porque no podemos obtener direcciones IP. Este servicio a menudo se usa para aplicaciones con estado, como bases de datos, donde es crucial tener una identidad de red consistente para cada iteración.
Requisitos previos
El usuario debe tener la versión más reciente de Ubuntu instalada en su sistema y comprender qué comando se utiliza para iniciar todos los procesos. El usuario debe estar familiarizado con Kubernetes, clústeres, vainas y la línea de comandos Kubectl, así como tenerlos instalados en el sistema. Para los usuarios de Windows, Virtual Box o VMware proporciona la instalación del uso de otro sistema operativo al mismo tiempo. Para los usuarios de Windows, se debe instalar una caja virtual, y Ubuntu o Linux deben estar ejecutándose de manera eficiente. Después de instalar todos los paquetes como Kubernetes en la aplicación, instale un minikube en la aplicación y luego avanzamos hacia la descripción del servicio sin cabeza, que dividimos en diferentes pasos con ejemplos adecuados para su comprensión. Entonces, eche un vistazo a lo siguiente:
Paso 1: crear un archivo de configuración
Al principio, creamos un archivo de configuración en el que explicamos todo sobre los servicios sin cabeza en detalle. Entonces, ejecutamos el comando en el clúster local de Minikube para el archivo de configuración:
> nano deplomani.yamlCuando se ejecuta el comando mencionado anteriormente, el archivo de configuración se abre con el nombre "Deplomani.Yaml ". El archivo de configuración para el contenedor se creó correctamente, como podemos ver en la captura de pantalla adjunta.
Paso 2: implementa el archivo de configuración en Kubernetes
En este paso, aprenderemos cómo implementar el archivo de configuración definido en el paso anterior en Kubernetes. Ejecutamos el comando para la implementación de archivos de la siguiente manera:
> kubectl crea -f deplomani.yamlLa implementación se crea después de la ejecución de este comando. El contenedor, o pod, se crea con éxito aquí.
Paso 3: Crea Service Manifest en Kubernetes
En este paso, creamos un archivo para iniciar un servicio regular en Kubernetes. Entonces, ejecutamos el comando para crear un manifiesto para el servicio regular, que es:
> nano regsev. yamlEjecute el comando en el terminal y presione Entrar. Cuando se ejecuta el comando, el "regsev.El archivo YAML "se crea correctamente, como se muestra en la captura de pantalla a continuación. Aquí, el tipo de POD es el servicio, el nombre de la cápsula es de servicio regular y los puertos están vinculados con direcciones IP.
Paso 4: Implementación del manifiesto de servicio regular
En este paso, implementamos el servicio de servicio regular definido en Kubernetes. Entonces, ejecutamos el comando aquí para este propósito:
> kubectl create -f regsev.yamlEl servicio se implementa y se crea con éxito después de la ejecución de comandos.
Paso 5: Cree un servicio de servicio sin cabeza
En este paso, queremos crear un manifiesto de servicio en el que definamos los servicios sin cabeza. Entonces, ejecutamos el comando para crear un archivo YAML:
> Nano Headsv.yamlIngrese el comando en la línea de comando kubectl y presione Entrar. Cuando creamos un manifiesto para un servicio sin cabeza en Kubernetes, podemos especificar "ninguno" como la IP del clúster al definir el servicio en el archivo manifiesto.
Paso 6: Implementar el servicio sin cabeza
Este paso implica implementar este archivo YAML sin cabeza a Kubernetes. Entonces, ejecutamos el comando aquí:
> Kubectl Crear -f Headsv. yamlSiguiendo la ejecución de comandos, el servicio sin cabeza del sistema "Headless SVC" se crea correctamente. Este comando crea un servicio sin una IP de clúster, pero sin embargo crea registros DNS para las cápsulas que se ajustan al selector para que podamos alcanzarlos por sus nombres DNS.
Paso 7: Agregar clúster temporal en Kubernetes
En este paso, ejecutamos el comando para crear algunos grupos temporales configurando su imagen en la aplicación.
> Kubectl Run Temporal --Image = Radial/BusyBoxplus: Curl -i --ttyCuando ejecutamos el comando, la captura de pantalla adjunta anteriormente muestra grupos temporales que tienen sus propios espacios en la aplicación de Kubernetes.
Paso 8: Obtenga el servidor y la dirección IP del servicio sin cabeza
En este paso, queremos ver la dirección del servidor y la dirección IP del servicio sin cabeza en Kubernetes. Ejecutamos el comando que devuelve un valor como una dirección y lo sirve desde el servidor DNS. La herramienta de línea de comandos de búsqueda se utiliza para consultar los servidores DNS para obtener información.
> nslookup Headless-SVCEste comando nos dio un servidor e IP, y la búsqueda nos devolvió un nombre de host de "SVC sin cabeza."Si el nombre de host no se resuelve, entonces DNS devuelve un mensaje de error.
Paso 9: Elimine todos los servicios en ejecución en Kubernetes
En este paso, terminamos todos los servicios en ejecución porque estos servicios involucran espacio y almacenamiento en aplicaciones Kubernetes. En primer lugar, eliminamos el servicio regular de Kubernetes ejecutando el comando:
> Servicio regular de Kubectl Delete SVCCuando ejecutamos este comando, el "servicio regular" se elimina con éxito.
Ahora, eliminamos el servicio sin cabeza del clúster Kubernetes. Ejecutamos el comando Eliminar ingresando el nombre del servicio sin cabeza "Headless-SVC" en la herramienta de línea de comandos Kubectl.
> Kubectl Delete SVC Headless-SVCEste comando termina con éxito el servicio sin cabeza desde el clúster Kubernetes.
El siguiente paso es la eliminación de implementaciones después de la terminación de todos los servicios de Kubernetes Aplicaciones. Ejecutamos el comando para eliminar la implementación de la aplicación.
> aplicación de implementación de eliminación kubectlComo resultado, la implementación de la aplicación se puede eliminar fácilmente utilizando un comando.
Por último, creamos una cápsula temporal en la sesión anterior. Aquí, también vemos la eliminación de estas vainas temporales de Kubernetes. Ejecutamos el comando para la eliminación:
> kubectl eliminar pod temporalLos servicios y los pods de Kubernetes se eliminaron con éxito.
Conclusión
Los servicios sin cabeza son muy útiles para manejar los servicios en Kubernetes. Los servicios sin cabeza nos proporcionan clúster sin IP. También aprendimos cómo eliminamos los servicios de ejecución de Kubernetes cuando no hay necesidad de estos servicios. También puede practicar estos ejemplos en su aplicación.