Come creare un servizio Kubernetes

Come creare un servizio Kubernetes

I servizi sono il livello di astrazione di rendere un'applicazione accessibile come servizio di rete sul set di pod. Offre un singolo nome DNS e indirizzo IP con il quale è possibile accedere ai pod. Viene aggiunto di fronte a ciascun pod per fornire un indirizzo IP statico. Questo articolo descrive la necessità di un livello di servizio e i tipi di servizi in Kubernetes. Fare riferimento a questo articolo dall'inizio alla fine se sei nuovo a questo concetto e non sai come creare un servizio Kubernetes.

Quali sono i servizi Kubernetes?

Un servizio in Kubernetes è un'astrazione che definisce una raccolta di baccelli logici in cui un componente o un'applicazione attiva è alloggiato e contiene una politica di accesso. A causa della natura fugace dei singoli baccelli, Kubernetes garantisce solo la disponibilità dei pod e delle repliche specificati, non la loro vivacità. Ciò suggerisce che altri pod che devono interagire con questa applicazione o componente non si basano sugli indirizzi IP dei loro baccelli sottostanti.

Un servizio è assegnato anche con un indirizzo IP simulato (in Kubernetes, viene quindi definito un clusterip) e sopravvive fino a quando non viene espressamente ucciso. Le query al servizio vengono inoltrate ai pod appropriati, rendendolo un'interfaccia affidabile per l'applicazione o la comunicazione del modulo. Le richieste per le applicazioni native di Kubernetes possono anche essere effettuate attraverso un'API nell'apiserver per Kubernetes che espone costantemente e mantiene gli endpoint di pod reali.

Quando abbiamo bisogno dei servizi Kubernetes?

Ecco i motivi per cui abbiamo bisogno di servizi Kubernetes:

Indirizzo IP stabile

Avere un indirizzo IP statico che rimane anche se il pod muore. Di fronte a ciascun pod, chiamiamo i servizi che forniscono accesso persistente e stabile per l'indirizzo IP a quel pod.

Bilancio del carico

Quando hai repliche POD. Ad esempio, hai tre repliche di un'applicazione di microservizio o MySQL. Il servizio ottiene ogni richiesta, prendendo di mira tale applicazione, ad esempio MySQL e lo inoltra a una di queste parti.

Accoppiamento lasco

I servizi sono una buona astrazione per l'accoppiamento sciolto o la comunicazione all'interno dei componenti del cluster.

All'interno e all'esterno del cluster

I servizi forniscono comunicazioni all'interno del cluster e al di fuori del cluster come le richieste del browser al cluster o al database.

Tipi di servizi in Kubernetes

Clusterip

Il tipo di servizio più comune o predefinito in Kubernetes. Senza concedere un accesso esterno, crea un servizio all'interno del cluster Kubernetes che può essere utilizzato dalle altre app all'interno del cluster.

Nodeport

Questo servizio apre una porta particolare su tutti i nodi implementati nel cluster e il traffico ricevuto dalla porta viene inoltrato al servizio. Non è possibile accedere al servizio dall'IP cluster esterno.

Loadbalancer

Genera gli IP pubblici per consentire un accesso tramite il cloud. Quando si utilizza il motore Google Kubernetes (GKE), viene creato un bilanciamento del carico di rete con un singolo indirizzo IP a cui è possibile accedere agli utenti esterni e dirige il traffico verso il nodo appropriato nel cluster Kubernetes. Lo stesso metodo di clusterip o nodeport può essere utilizzato per accedervi.

Nome esterno

Questo è un modo standard per rappresentare un dataStore esterno, come un database, all'interno di Kubernetes creando un servizio. Quando i pod da uno spazio dei nomi devono comunicare con un servizio in uno spazio dei nomi diverso, è possibile utilizzare quel servizio esterno (come servizio locale).

Prerequisiti:

Ecco alcune cose indispensabili prima di dirigersi verso la sezione seguente:

  • Cluster Kubernetes
  • Cluster Minikube
  • Un cluster in esecuzione su Kubernetes con almeno un singolo nodo di lavoro.

Come creare un servizio in Kubernetes

Qui, ti guideremo attraverso un esempio semplice che ti mostra come creare un servizio su Kubernetes. Cominciamo!

Passaggio 1: avviare il cluster minikube

Innanzitutto, avvia il cluster minikube in modo da poter utilizzare i comandi Kubectl ed eseguire l'applicazione. Il cluster Minikube ti consente di distribuire i tuoi nodi, i baccelli e persino il cluster nell'ambiente Kubernetes. Quindi, è essenziale mantenere il minikube in modalità attivo usando il comando successivo:

> Minikube Start

Questo attiva il cluster minikube e rende pronto l'ambiente Kubernetes.

Passaggio 2: COnfigure the YAML Manifest to Deployment per Nginx

Il servizio indirizza tutte le richieste in arrivo alla distribuzione che stabiliamo utilizzando il seguente comando:

> Nano campionario.Yaml

Quanto segue è il file di configurazione completo:

Passaggio 3: creare un oggetto di servizio nel cluster

Per aggiungere un oggetto di servizio a un cluster, eseguire il seguente comando:

> kubecl applicare -f campionario.Yaml

Passaggio 4: crea tre repliche per Nginx

Il comando seguente distribuisce Nginx con tre copie:

> Kubectl Ottieni distribuzione | grep nginx

Passaggio 5: specificare le informazioni (POD, replicas)

I seguenti comandi mostrano i dettagli della distribuzione, delle repliche e del pod:

> Kubectl Ottieni replicAset | grep nginx

Passaggio 6: Dettagli del pod

Qui, utilizziamo il seguente comando per vedere le copie esatte di Nginx:

> kubectl ottieni pod | grep nginx

Puoi vedere che tre copie di Nginx sono realizzate nello screenshot precedente.

Passaggio 7: Create una definizione di servizio

In questo passaggio, creiamo una definizione di servizio utilizzando il seguente comando elencato:

> Nano campioni di servizio.Yaml

Con la descrizione del servizio di cui sopra, un servizio del tipo di NodePort viene creato utilizzando lo spazio dei nomi predefinito e le richieste vengono inoltrate ai baccelli con l'etichetta NGINX come i baccelli che sono stati generati durante la fase di creazione di distribuzione precedente.

Passaggio 8: CREATE UN SERVIZIO

Per creare un servizio, utilizzare il seguente comando:

> kubectl applicare -f sampleervice.Yaml

Nell'output, puoi vedere che il servizio viene creato correttamente.

Passaggio 9: ottenere i dettagli del servizio

In questo passaggio, otteniamo le specifiche del servizio e cerchiamo il nodo in cui è accessibile. Il comando per farlo è il seguente:

> Kubectl Ottieni servizio | grep nginx

Passaggio 10: descrivi i dettagli del servizio

In questo passaggio, utilizziamo il comando Descrive per vedere i dettagli del servizio. Il comando Descrive è dato come segue:

> kubectl Descrivi il servizio nginx

Il servizio è accessibile sulla porta 30747, come mostrato nello screenshot precedente. Potresti sperimentare qualcosa di diverso perché la porta è stata scelta a caso dall'intervallo disponibile. Ora, questo servizio su Nodeip: NodePort consente l'accesso all'applicazione NGINX.

Conclusione

Abbiamo appreso che il servizio è un livello astratto che è posto davanti ai pod per fornire un indirizzo IP stabile. Possiamo accedere a Internet utilizzando il tipo di servizio loadBalancer. Successivamente, abbiamo implementato il semplice esempio di creazione di un servizio passo dopo passo su Kubernetes, consentendo un accesso all'applicazione NGINX.