Crea Kubernetes EndpointSlice

Crea Kubernetes Endpointslice



Una slice dell'endpoint consente di tenere traccia dell'endpoint della rete connesso al cluster Kubernetes. Puoi saperne di più su EndpointSlices nell'ambiente Kubernetes attraverso questo articolo che abbiamo creato per te. In questo tutorial, ti aiuteremo a scoprire cos'è un EndpointSlice nel cluster Kubernetes e come puoi creare un EndpointSlice in Kubernetes. Dimostreremo alcuni comandi kubectl che ci consentono di creare un endpoint nel cluster Kubernetes.

Che cos'è un EndpointSlice in Kubernetes?

EndpointSlice in Kubernetes è un tracker di endpoint di rete. Consente di monitorare gli endpoint di rete in un cluster Kubernetes. In parole semplici, è un oggetto che ottiene gli indirizzi IP da ogni pod a lui assegnato. Il servizio Kubernetes fa riferimento a questo oggetto per ottenere il record degli indirizzi IP interni del pod per la comunicazione. Inoltre, questi endpoint vengono utilizzati dai pod per esporsi a un servizio.

Nel realm Kubernetes, questi endpoint funzionano come un livello di astrazione che aiuta il servizio Kubernetes a garantire che vi sia una distribuzione del traffico ai pod nel cluster. Tuttavia, quando aumenta il carico di traffico, si verifica il problema di ridimensionamento del traffico. Questo perché un singolo endpoint contiene tutti gli endpoint di rete per ogni servizio. E quando queste fonti raggiungono dimensioni inaccettabili, le prestazioni di Kubernetes subiscono un impatto negativo. In altre parole, quando il numero di endpoint di rete cresce immensamente, la capacità di Kubernetes di ridimensionare la distribuzione viene influenzata negativamente. Cerchiamo di capirlo con l'aiuto della seguente immagine grafica:









Qui puoi vedere che un endpoint contiene tutti i pod nel cluster e EndpointSlices sono l'alternativa estensibile e scalabile all'endpoint esistente. Esiste una sola risorsa endpoint per l'intero servizio, ma esistono più EndpointSlice per lo stesso servizio. Gli EndpointSlice ti aiutano a ridimensionare le tue risorse di rete in questo modo. Per capire quanto sia significativo questo problema di scalabilità, facciamo un esempio.



Ad esempio, il servizio Kubernetes ha circa 9.000 pod che in qualche modo finiscono in risorse endpoint da 2 MB. Un singolo endpoint ha tutte queste risorse endpoint dei servizi. Se un endpoint di rete cambia nell'endpoint, l'intera risorsa dell'endpoint deve essere distribuita tra ogni nodo del cluster. Quando si tratta di gestire un cluster con 3000 nodi, diventa un grosso problema poiché è necessario inviare un numero enorme di aggiornamenti a ciascun nodo. Quindi, quando ridimensioni di più in un solo endpoint, diventa più difficile il ridimensionamento della rete.





Tuttavia, gli EndpointSlice risolvono questo problema consentendo a Kubernetes di ridimensionarsi quanto necessario. Invece di usare un singolo endpoint che contiene un enorme elenco di indirizzi IP e i relativi numeri di porta associati, usa più EndpointSlice. Questi EndpointSlice sono piccoli pezzi di un enorme singolo endpoint. Queste sezioni sono molto più piccole, ma mitigano il carico causato dall'enorme endpoint. Puoi archiviare fino a 100 pod in un EndpointSlice. Questi EndpointSlice ti aiutano a distribuire il servizio a un pod specifico. Se un endpoint di rete cambia, devi solo inviare gli aggiornamenti a un EndpointSlice che contiene un massimo di 100 pod. Tutti gli altri pod nella rete rimangono intatti.

Vediamo ora come creare un Kubernetes EndpointSlice.



Come vengono create le EndpointSlice in Kubernetes?

Kubernetes EndpointSlices è la migliore alternativa a un singolo endpoint nel cluster Kubernetes. Non solo ti aiuta a tenere traccia di tutti gli endpoint di rete in modo semplice ed efficiente, ma offre anche prestazioni migliori rispetto a un singolo endpoint. Mostra anche il traffico di rete inferiore offrendo allo stesso tempo un'affidabilità di scalabilità. Inoltre, l'utilizzo di più EndpointSlice consente di dedicare meno lavoro al piano di controllo e ai nodi nel cluster Kubernetes.

Puoi avere i passaggi che ti consentono di imparare come creare EndpointSlices nel cluster Kubernetes negli esempi seguenti.

Passaggio 1: avviare il cluster Minikube

Il primo e più importante passo è assicurarsi che il cluster minikube sia attivo. Un cluster minikube inattivo non ti consentirà di eseguire alcun lavoro nell'ambiente Kubernetes, quindi assicurati che sia in modalità attiva. Per assicurarti che il cluster minikube sia attivo e funzionante, usa il seguente comando:

> avvia minikube

Se il tuo cluster minikube non è stato avviato prima o se è in modalità di sospensione, questo comando lo riattiva e lo rende operativo. Ora hai un cluster minikube attivo. Sei pronto per creare EndpointSlice nel tuo ambiente Kubernetes.

Passaggio 2: crea una distribuzione con il file YAML

Il file YAML è più comunemente utilizzato in Kubernetes per creare distribuzioni. Puoi utilizzare il file YAML di distribuzione preesistente oppure puoi crearne uno nuovo con il seguente comando:

> nanoendpoint.yaml

In questo modo viene creato un nuovo file YAML denominato 'endpoint.yaml' in cui è possibile salvare la definizione della distribuzione per la configurazione. Fare riferimento alla definizione di distribuzione nello screenshot seguente:

Passaggio 3: crea EndpointSlice utilizzando il file YAML

Ora che disponiamo di un file YAML che contiene la definizione del deployment, lo usiamo per creare EndpointSlice nel nostro cluster Kubernetes. Dobbiamo distribuire il file di configurazione in modo da poter avere gli EndpointSlice nel cluster Kubernetes. Usiamo il seguente comando per distribuire il file di configurazione:

> kubectl create -f endpoint.yaml

Nell'ambiente Kubernetes, le risorse vengono create utilizzando il comando 'kubectl create'. Quindi, usiamo il comando 'kubectl create' per creare EndpointSlices dal file di configurazione YAML.

Conclusione

Abbiamo esplorato le EndpointSlice nell'ambiente Kubernetes. EndpointSlice in Kubernetes è un oggetto utilizzato per tenere traccia di tutti gli endpoint di rete nel cluster Kubernetes. È la migliore alternativa a un enorme e singolo endpoint nel cluster Kubernetes poiché consente migliori opzioni di scalabilità ed estendibilità. Questi EndpointSlice consentono al cluster Kubernetes di fornire prestazioni migliori impiegando meno lavoro sui nodi e sul piano di controllo. Con l'aiuto di un esempio, abbiamo imparato come creare EndpointSlice nel cluster Kubernetes.