Cómo crear un webhook en Kubernetes

Cómo crear un webhook en Kubernetes
Hablemos en detalle sobre Webhook en Kubernetes. Este tutorial te ayuda a construir tu webhook desde cero en Kubernetes. Demostraremos cada paso con imágenes y ejemplos para ayudarlo a comprender la base de los webhooks en Kubernetes. En este artículo, aprenderemos sobre webhooks y los consejos fáciles para hacer webhooks en Kubernetes. Este artículo proporciona toda la información necesaria sobre el tema en detalle. Primero comencemos con la definición de webhooks.

¿Qué son los webhooks??

Es posible que haya encontrado el término webhook en la configuración de su aplicación. Quizás se pregunte si un webhook es de alguna utilidad para usted o no. Bueno, la respuesta es un sí absoluto sí. Webhook es una forma de entregar los datos a una aplicación. Webhooks, en palabras simples, le permite entregar los mensajes directamente de una aplicación a la otra. Cada vez que se completa un evento, se envían mensajes automatizados a la aplicación. Los webhooks son cuáles son estas respuestas automatizadas. El concepto es muy similar a las notificaciones de SMS.

Por ejemplo, usted posee una cuenta de PayPal, y alguien quiere transferir su dinero. Para saber si el evento es exitoso, necesita alguna notificación. Aquí es donde entran en juego los webhooks. El webhook le permite a PayPal decirle a su aplicación de contabilidad cuando el sistema complete su giro postal. Del mismo modo, WooCommerce le notifica sobre sus pedidos en Slack a través de Webhooks.

Ahora, discutamos los requisitos previos y el proceso paso a paso para crear un webhook en Kubernetes.

Prerrequisitos:

Antes de la creación de webhooks, veamos los requisitos previos. Debe asegurarse de que su sistema cumpla con todos los estándares antes de poder construir su webhook:

  • Ubuntu 20.04 o cualquier otra última versión para tener un entorno Linux/Unix para funcionar
  • Clúster de Kubernetes
  • Kubectl CLI para usar los comandos Kubectl, la comunicación del clúster y administrar el entorno de desarrollo
  • Minikube o cualquier otro patio de recreo de Kubernetes para crear los clústeres

Si no ha instalado estas herramientas, su primer paso es instalarlas inmediatamente. Una vez que hayas recibido estas herramientas, podemos pasar a la siguiente parte. Vamos a sumergirnos directamente en la creación de webhooks, paso a paso.

Paso 1: Formato de archivo de configuración

Para el modo de configuración HTTP, Webhook requiere un archivo. Este archivo de configuración utiliza el formato de archivo KubeConfig y lo especifica por -authorization-webhook-config-file = some_filename flag. El archivo comprende dos elementos: usuarios y clústeres. Los usuarios hacen referencias al webhook del servidor API dentro del archivo, mientras que los clústeres hacen referencias al servicio remoto.

Así es como se ve un archivo de configuración simple:

En la captura de pantalla adjunta, puede ver la versión API y el tipo de API en las dos primeras líneas. Después de eso, se presentan los grupos, los usuarios y la información de contexto actual. Tenga en cuenta que los archivos KubeConfig necesitan contexto. Por lo tanto, debe dar uno al servidor API. Esto es lo que logramos en el paso anterior, como puede ver en la imagen anterior.

Una vez que la configuración HTTP se realiza con éxito, podemos avanzar al siguiente paso que solicita las cargas útiles.

Paso 2: Solicitar cargas útiles

El servidor API publica una autorización serializada por JSON.K8S.IO/V1BETA1 SUMTICISACESSRVIVIEWObject cuando está a punto de autorizarse. Esto se hace para notificar sobre la decisión de autorización. Este objeto contiene información sobre el campo y el recurso. La información de recursos define las propiedades a las que se accedió o solicitó, mientras que los detalles del campo identifican a la persona que intenta hacer la solicitud.

Aquí, es importante tener en cuenta que las reglas de compatibilidad de versiones no son diferentes para los objetos API de Webhook y son tan similares a los objetos de la API de Kubernetes. La deserialización correcta es crucial para la creación de webhook. Para lograr una deserialización precisa, los implementadores siempre deben tener en cuenta dos factores: el potencial de promesas de compatibilidad más floja de los objetos beta y la necesidad de verificar el campo de la apuntora de la solicitud. Además, el servidor API debe habilitar la autorización.K8S.Grupo de Extensiones IO/V1Beta1API (-Runtime-Config = Autorización.K8S.io/v1beta1 = verdadero).

Aquí hay un cuerpo de solicitud de ejemplo que adjuntamos por su ayuda:

El servicio remoto se hace responsable de permitir y no permitir el acceso, lo que se realiza al completar el campo de estado. Discutiremos ambos tipos de respuestas paso a paso. Hablando de la especificación del cuerpo de respuesta permisiva, puede dejarla vacía o omitirlo por completo. La mayoría de las veces, se ignora. Un ejemplo de permitir el acceso es el siguiente:

Lo siguiente es el acceso de no permitir. Ahora hay dos métodos para ejecutar una respuesta de no permitir. Los implementadores generalmente prefieren el primer método en la mayoría de los casos. Este método depende de la configuración de los autorizadores. Los autorizadores pueden aprobar la solicitud si se han configurado. En el escenario opuesto, donde no hay autorizadores o simplemente no permiten la solicitud, la solicitud no se aprueba para generar una respuesta permisiva. La siguiente imagen muestra una respuesta denegada:

¿Por qué usar Kubernetes para Webhooks??

Kubernetes es un sistema de código abierto para administrar la comunicación entre aplicaciones de software, escala y automatización. En términos de velocidad y gestión del clúster de backend, Kubernetes ha avanzado significativamente en los últimos años. Debido a su maravillosa flexibilidad, escalabilidad y facilidad de operación, es uno de los mejores software para los grupos de backend hoy en día. Una de las características clave de Kubernetes es que proporciona características para garantizar las cargas de trabajo de producción seguras.

Diferencia entre API y Webhook

Tanto la API como los webhooks se usan con frecuencia en el mundo del mundo diariamente. Puede usar los términos indistintamente. Como ambos tienen una operación similar, la confusión es bastante válida. Sin embargo, no son las mismas cosas. La principal diferencia entre API y Webhook es que las API son manuales, pero los webhooks están automatizados. En el caso de las API, se les debe pedir que accedan o niegue las solicitudes. Sin embargo, Webhook hace eso por sí solo. Podemos decir que Webhook es un subconjunto de API. Por lo tanto, tienen un alcance muy limitado. La conclusión es que las API requieren que el comando de un usuario realice una respuesta, mientras que los webhooks no dependen de dichos comandos de usuario.

Conclusión

Este artículo presentó una vista de pájaro de lo que son los webhooks y cómo crearlos en Kubernetes. En este artículo, aprendimos por qué Kubernetes es el software más popular para construir webhooks. Siguiendo la guía que se establece en este artículo, lo ayudaremos a hacer sus webhooks en poco tiempo y con facilidad.