¿Qué es el descubrimiento de servicios en Kubernetes??

¿Qué es el descubrimiento de servicios en Kubernetes??
Los microservicios se utilizan en sistemas modernos para mantenerlos escalables y funcionales. Con sus herramientas y funcionalidades, Kubernetes crea la configuración perfecta para que los microservicios colaboren. La solución en su conjunto se vuelve mucho más flexible ya que cada componente de la aplicación se implementa en un contenedor. El descubrimiento de servicios es el proceso de localización de aplicaciones y microservicios en una red.

La técnica de encontrar automáticamente dispositivos y servicios en una red se conoce como descubrimiento de servicios. El Protocolo de descubrimiento de servicios (SDP) es un estándar de red para detectar redes y localizar recursos cuando los usuarios reciben recursos adecuados, como una impresora o computadora portátil habilitada para Bluetooth, ayudas de descubrimiento de servicios para reducir las molestias de configuración.

El descubrimiento de servicios se logra en Kubernetes utilizando nombres de servicio creados automáticamente correspondientes a la dirección IP del servicio. En Kubernetes, el modelo de servicios ofrece el componente más básico pero crucial del descubrimiento de microservicios. Reconocer cómo funciona una aplicación en Kubernetes requiere una comprensión del descubrimiento de servicios. El servicio de Kubernetes sincroniza y automatiza la conectividad entre los servicios, abordando los problemas de contenedores en un diseño de microservicios. Servicios de enlace de vainas a la red de manera consistente a través de grupos.

El proceso de determinar cómo unirse al servicio se conoce como descubrimiento de servicios. El descubrimiento de servicios del lado del servidor y del lado del cliente son los principales tipos de descubrimiento de servicios. Las aplicaciones de clientes pueden usar enfoques de descubrimiento de servicios del lado del servidor para soportar a través de un enrutador o un equilibrador de carga. El descubrimiento de servicios del lado del cliente permite a las aplicaciones del cliente localizar servicios buscando o solicitando un registro de servicio que contenga instancias de servicio y puntos finales.

Las instancias de servicio se pueden registrar y suspender temporalmente desde el registro de servicio en dos métodos diferentes. El patrón de autoinscripción permite a las entidades de servicio registrarse de forma independiente con el registro de servicio. El patrón de registro de terceros implica que otro componente del sistema realice el registro y la desertación a cuenta del servicio. Uno de los componentes que hacen que esta plataforma de contenedor sea capaz y adaptable es el descubrimiento de servicios de Kubernetes. A través de la estandarización, las tecnologías avanzadas como el servicio de la malla de servicio renderizan el descubrimiento de servicios de Kubernetes más efectivos. Veremos algunos de los procesos básicos de descubrimiento de servicios en Kubernetes en este tema.

Comencemos por armar algunos servicios necesarios para examinar cómo funcionan los conceptos de servicio de Kubernetes en términos prácticos. Accedamos a la terminal del Ubuntu 20.04 LTS OS para hablar sobre el descubrimiento de servicios en Kubernetes. Para esto, puede usar el área de aplicación o una tecla de acceso directo que es "Ctrl+Alt+T".

Para inicializar Minikube, ejecute el comando enumerado a continuación.

$ minikube comienzo

La edición actual de Minikube se mostrará en la salida de esta instrucción. Ahora haremos un espacio de nombres llamado "Desarrollar" usando el comando CAT en el shell.

$ gato << ENDL > Desarrollar el espacio de nombres.YML

El contenido se agregará directamente al terminal sin abrirlo desde el archivo.

Para generar un espacio de nombres en el terminal, utilice el comando como:

$ Kubectl Aplicar -f Desarrollar Namespace.YML

El espacio de nombres ha sido creado de manera efectiva. Ahora, de nuevo, crearemos otro espacio de nombres llamado "Producción" utilizando el comando CAT en el shell.

Para generar un espacio de nombres en el terminal, ejecute el comando como:

$ kubectl aplicar -f -namespace.YML

Nuevamente, el espacio de nombres se ha creado de manera efectiva. Ahora vamos a implementar nuestras aplicaciones de muestra en los espacios de nombres que hemos creado anteriormente. Para este propósito, crearemos una implementación llamada "Hello" para el espacio de nombres de desarrollo utilizando el comando CAT en el shell.

$ gato << ENDL > desarrollo de la aplicación.YML

El contenido se agregará directamente al terminal sin abrirlo desde el archivo.

Para crear una implementación para el espacio de nombres de desarrollo, ejecute el comando como:

$ KUBECTL Aplicar -F App-Deployment-Develogrel.YML

La implementación se ha creado de manera efectiva. Nuevamente, crearemos otra implementación para un espacio de nombres llamado "Producción" utilizando el comando CAT en el shell.

$ gato << ENDL > producción de aplicaciones.YML

Para crear una implementación para el espacio de nombres de producción en el terminal, utilice el comando como:

$ KUBECTL Aplicar -f-Producción de implementación de aplicaciones.YML

La implementación se ha creado de manera eficiente, como se puede ver desde la salida mostrada. Ahora para definir las cápsulas y encontrar su dirección IP, vamos a ejecutar el comando que se encuentra a continuación como:

$ kubectl describe pods-todos los espacios de nombre

Las direcciones IP para cada POD en la salida anterior son internas y únicas para cada ocurrencia. Cada vez que redistribuimos la aplicación, se le daría una nueva dirección IP. Ahora podemos probar si podemos o no hacer una vaina dentro del clúster. Cree un archivo utilizando el comando CAT como.

$ gato << ENDL >> Jumpod.YML

Para crear un POD para el espacio de nombres predeterminado en el shell, ejecute el comando como:

kubectl aplicar -f jumpod.YML

Se ha creado la vaina, como se puede ver desde la imagen atacada. Ping la dirección IP de una cápsula temporal dentro del espacio de nombres predeterminado utilizando el comando CAT en el shell utilizando el comando kubectl exec.

$ kubectl exec -it jumpod ping 10.244.0.149

El sistema de nombres de dominio se encuentra entre los aspectos esenciales del servicio efectivo de Internet (DNS). Todo el contenido de Internet y los servicios web dependen de DNS, por lo que debe poder resolver cualquier problema rápidamente. Una herramienta llamada nslookup es un método para hacer esto. NSLookUp significa "Búsqueda de nombres", le permite verificar la información sobre un nombre de dominio y descubrir problemas. Podemos adquirir el FQDN de la cápsula utilizando la herramienta NSLookup:

$ kubectl exec -it jumpod nslookup 10.244.0.149

Ahora para verificar la dirección IP implementada externa, ejecutaremos el siguiente comando:

$ kubectl get servicios-todos los espacios de nombres

Conclusión

Al migrar a los microservicios, el descubrimiento de servicios es probablemente la infraestructura más importante para implementar. En este tutorial, hemos visto lo simple que es exponer una aplicación al público que utiliza los servicios de Kubernetes.