Cosa sono i webhook?
Potresti aver incontrato il termine webhook nelle impostazioni della tua app. Potresti chiederti se un webhook ti serve o no. Bene, la risposta è un sì assoluto. Webhook è un modo per fornire i dati a un'applicazione. Webhooks, in parole semplici, ti consentono di consegnare i messaggi direttamente da un'app all'altra. Ogni volta che un evento viene completato, i messaggi automatizzati vengono inviati alla domanda. I webhooks sono quali sono queste risposte automatizzate. Il concetto è molto simile alle notifiche SMS.
Ad esempio, possiedi un account PayPal e qualcuno vuole trasferire i tuoi soldi. Per sapere se l'evento ha successo, hai bisogno di una notifica. Questo è dove entrano in gioco i webhook. Il webhook consente a PayPal di raccontare l'app contabile quando il sistema completa il tuo ordine di denaro. Allo stesso modo, WooCommerce ti avvisa i tuoi ordini in Slack tramite Webhooks.
Ora, discutiamo dei prerequisiti e del processo passo-passo per la creazione di un webhook in Kubernetes.
Prerequisiti:
Prima della creazione di Webhooks, guardiamo nei prerequisiti. Devi assicurarti che il tuo sistema sia conforme a tutti gli standard prima di poter costruire il tuo webhook:
Se non hai installato questi strumenti, il tuo primo passo è installarli immediatamente. Una volta ottenuti questi strumenti, possiamo passare alla parte successiva. Ci immergiamo direttamente nella creazione di Webhooks, passo dopo passo.
Passaggio 1: formato del file di configurazione
Per la modalità di configurazione HTTP, WebHook richiede un file. Questo file di configurazione utilizza il formato di file kubeConfig e lo specifica dal flag -authorization-webhook-config-file = some_filename flag. Il file comprende due elementi: utenti e cluster. Gli utenti fanno riferimenti al Webhook del server API all'interno del file, mentre i cluster fanno riferimenti al servizio remoto.
Ecco come appare un semplice file di configurazione:
Nello screenshot allegato, puoi vedere la versione API e il tipo di API nelle prime due righe. Successivamente, vengono presentati i cluster, gli utenti e le informazioni di contesto attuali. Tieni presente che i file KubeConfig necessitano di un contesto. Pertanto, devi darne uno al server API. Questo è ciò che abbiamo realizzato nel passaggio precedente, come puoi vedere dall'immagine precedente.
Una volta che la configurazione HTTP è stata eseguita correttamente, possiamo andare avanti al passaggio successivo che richiede i payload.
Passaggio 2: richiedere payloads
Il server API pubblica un'autorizzazione di Serializzata JSON.K8S.io/v1beta1 soggetto AccessReviewObject Quando sta per essere autorizzato. Questo viene fatto per avvisare la decisione di autorizzazione. Questo oggetto contiene informazioni sul campo e sulla risorsa. Le informazioni sulle risorse definiscono le proprietà accessibili o richieste, mentre i dettagli del campo identificano la persona che tenta di effettuare la richiesta.
Qui, è una cosa importante tenere presente che le regole di compatibilità di versione non sono diverse per gli oggetti API WebHook e sono altrettanto simili agli oggetti API di Kubernetes. La deseriazione corretta è cruciale per la creazione di webhook. Per ottenere una precisa deserializzazione, gli implementatori dovrebbero sempre prendere in considerazione due fattori: il potenziale per le promesse di compatibilità più allentate degli oggetti beta e la necessità di verificare il campo dell'apiterazione della richiesta. Inoltre, il server API deve abilitare l'autorizzazione.K8S.Gruppo di estensioni IO/V1Beta1API (-Runtime-Config = Autorizzazione.K8S.io/v1beta1 = true).
Ecco un ente di richiesta di esempio che abbiamo allegato per il tuo aiuto:
Il servizio remoto è ritenuto responsabile per consentire e non consentire l'accesso, che viene eseguito compilando il campo di stato. Discuteremo entrambi i tipi di risposte passo dopo passo. Parlando delle specifiche del corpo della risposta permissiva, puoi lasciarlo vuoto o omettilo completamente. Il più delle volte, viene ignorato. Un esempio di consentire l'accesso è il seguente:
Il prossimo è l'accesso a non consentire. Ora ci sono due metodi per l'esecuzione di una risposta di non consentire. Gli implementatori di solito preferiscono il primo metodo nella maggior parte dei casi. Questo metodo dipende dalla configurazione degli autori. Gli autori sono autorizzati ad approvare la richiesta se sono stati configurati. Nello scenario opposto, in cui non ci sono autori o semplicemente non consentono la richiesta, la richiesta non viene approvata per generare una risposta permissiva. La seguente immagine mostra una risposta negata:
Perché utilizzare Kubernetes per Webhooks?
Kubernetes è un sistema open source per gestire la comunicazione tra applicazioni software, ridimensionamento e automazione. In termini di velocità e gestibilità del cluster di backend, Kubernetes è significativamente avanzato negli ultimi anni. A causa della sua meravigliosa flessibilità, scalabilità e facilità di funzionamento, oggi è uno dei migliori software per i cluster di backend. Una delle caratteristiche chiave di Kubernetes è che fornisce funzionalità per garantire i carichi di lavoro di produzione sicuri.
Differenza tra API e Webhook
Sia API che Webhooks sono spesso utilizzati nel mondo del software quotidiano. È possibile utilizzare i termini in modo intercambiabile. Dato che entrambi hanno un'operazione simile, la confusione è abbastanza valida. Tuttavia, non sono le stesse cose. La differenza principale tra API e Webhook è che le API sono manuali ma i webhook sono automatizzati. Nel caso delle API, devono essere invitati a accedere o negare le richieste. Tuttavia, Webhook lo fa da solo. Possiamo dire che Webhook è un sottoinsieme di API. Pertanto, hanno un ambito molto limitato. La linea di fondo è che le API richiedono il comando di un utente per eseguire una risposta, mentre i webhook non dipendono da tali comandi utente.
Conclusione
Questo articolo ha presentato una vista a volo d'uccello di cosa sono i webhook e come crearli su Kubernetes. In questo articolo, abbiamo imparato perché Kubernetes è il software più popolare per la costruzione di webhooks. Seguendo la guida che è indicata in questo articolo, ti aiuteremo a fare i tuoi webhook in pochissimo tempo e con facilità.