Quali sono i diversi tipi di servizi in Kubernetes?

Quali sono i diversi tipi di servizi in Kubernetes?
Un servizio in Kubernetes è un'astrazione che descrive una raccolta di pod concettuali in cui esegue un'applicazione e una politica di accesso per questo tipo di pod. Se un pod deve connettersi con qualche altro pod, deve prima determinare il suo indirizzo IP. I Servizi Kubernetes forniscono anche un modo per trovare alcuni pod. Gli indirizzi IP Pod sono astratti nel modello di networking di Kubernetes; Se un pod si rompe o viene distrutto, un nuovo pod otterrà quasi sicuramente un nuovo indirizzo IP. Un servizio a Kubernetes garantisce spesso l'accesso alla rete a un pod o un gruppo di baccelli. I servizi sceglieranno i pod a seconda dei loro nomi e quando la domanda di rete verrà inviata a tali servizi, identificherà tutti i pod nel cluster che si adattano all'etichetta del servizio, sceglieranno uno di essi e quindi ti inviava la richiesta di rete ad essa.

Categorie di servizi Kubernetes

I servizi Kubernetes sono divisi in quattro categorie di base:

Clusterip
In Kubernetes, il servizio clusterip è effettivamente la forma di servizio standard. Fornisce un servizio all'interno del cluster Kubernetes che altre app di Kubernetes possono gestire senza fornire accesso dall'esterno. È un indirizzo IP che il cluster di Kubernetes e tutti i suoi servizi possono utilizzare internamente. A differenza dell'indirizzo IP POD, l'indirizzo IP utilizzato nel clusterip non è raggiungibile oltre il cluster.

Nodeport
Ogni nodo nel cluster ha una porta aperta chiamata Nodeport. Anche se la tua app viene eseguita su un nodo diverso, Kubernetes instrada in modo diretto il traffico da NodePort al servizio. Ogni cluster Kubernetes accetta NodePort, ma devi modificare i tuoi firewall se si utilizza un provider di servizi cloud come Google Cloud.

Loadbalancer
Un carico è un modo popolare per introdurre un servizio Kubernetes nel mondo esterno attraverso Internet. LoadBalancer può essere utilizzato in modo simile a clusterip e nodeport.Il cluster si avvicinerà al provider cloud e creerà un bilanciamento del carico se si seleziona LoadBalancer come categoria di servizio. Il traffico verrà reindirizzato ai pod backend quando arriva a questo bilanciamento del carico. I dettagli di questo metodo sono determinati da come ogni fornitore di bilanciamento del carico implementa la sua tecnologia.

Nome esterno
Poiché i servizi di nome esterno non dispongono di selettori o porte fisse o endpoint, possono reindirizzare il traffico a un servizio esterno. Questo modulo associa il servizio agli elementi del campo di nome esterno. Completa questo restituendo il valore record di un CNAME.

Crea una distribuzione insieme al servizio

Una distribuzione di Kubernetes monitora la salute del pod e, se necessario, reimpostare il contenitore del pod. Le distribuzioni sono il metodo per gestire la formazione e il ridimensionamento del pod. Quindi, per gestire un pod, creeremo una distribuzione. A tale scopo, apriamo il terminale del tuo Ubuntu 20.04 LTS Sistema operativo. È possibile utilizzare l'area dell'applicazione o la chiave di scorciatoia per questo scopo. Assicurati di avere minikube installato nel tuo sistema.

Esegui il comando di seguito per avviare Minikube.

$ Minikube inizi

Nell'output di questo comando, vedrai la versione di Minikube. Dopo questo comando, devi aprire la dashboard Minikube con l'aiuto di questo comando sotto l'elenco.

$ Minikube Dashboard

Ora siamo tutti pronti a creare una distribuzione utilizzando il comando Crea. Devi scrivere il comando di seguito come mostrato nel terminale.

Puoi visualizzare che il nodo Hello è stato creato. Se si desidera visualizzare le distribuzioni, puoi facilmente farlo eseguendo il comando citato.

$ kubectl ottieni distribuzioni

Nell'output, è possibile visualizzare le informazioni di base relative a una distribuzione già creata. È possibile visualizzare il pod mediante l'esecuzione di questo comando:

$ kubectl ottieni baccelli

Nell'output di seguito, è possibile visualizzare facilmente tutte le informazioni pertinenti relative ai pod elencati. Se si desidera elencare gli eventi del cluster, è possibile utilizzare il seguente comando di base per questo scopo.

$ kubectl Ottieni eventi

Ora, puoi visualizzare la configurazione KubeCtl utilizzando il comando di seguito:

$ kubectl Config View

All'interno del cluster di Kubernetes, il pod sarebbe disponibile solo dal suo indirizzo IP interno. Sarebbe meglio esporre il contenitore Hello-Node come servizio Kubernetes per renderlo disponibile verso l'esterno della rete virtuale di Kubernetes. Ora esporremo il pod usando il comando sotto l'elenco. Inoltre, puoi vedere quel -type = loadbalancer che esporrà il servizio correlato al di fuori del cluster.

Ora è il momento di visualizzare il servizio creato. Quindi, a questo scopo, puoi utilizzare il comando di seguito. L'uscita deve essere simile a quella visualizzata nell'immagine allegata.

$ kubectl Ottieni servizi

Per visualizzare le informazioni sul servizio Hello Node, è possibile utilizzare il comando visualizzato seguente insieme alla parola chiave Minikube.

$ Minikube Service Hello-Node

Puoi vedere l'URL del nodo viene visualizzato anche nello screenshot allegato insieme alla porta target. Fortunatamente, il servizio sarà aperto nel browser del sistema operativo. Puoi verificare che le informazioni sul servizio siano visualizzate nel browser del sistema.

Conclusione

In questa guida, abbiamo elaborato il concetto di servizi in Kubernetes insieme alle sue diverse categorie. Inoltre, abbiamo spiegato un esempio di base per la creazione di distribuzione insieme al servizio pertinente. Leggendo e implementando questa guida sopra, spero che tu possa facilmente comprendere il concetto di Kubernetes Services e la sua creazione.