Criar EndpointSlices do Kubernetes

Criar Endpointslices Do Kubernetes



Uma fatia de endpoint permite que você rastreie o endpoint da rede que está conectado ao cluster Kubernetes. Você pode aprender mais sobre EndpointSlices no ambiente Kubernetes através deste artigo que criamos para você. Neste tutorial, ajudaremos você a aprender o que é um EndpointSlice no cluster Kubernetes e como você pode criar um EndpointSlice no Kubernetes. Demonstraremos alguns comandos kubectl que nos permitem criar um endpoint no cluster Kubernetes.

O que é um EndpointSlice no Kubernetes?

O EndpointSlice no Kubernetes é um rastreador de endpoint de rede. Ele possibilita monitorar os endpoints de rede em um cluster Kubernetes. Em palavras simples, é um objeto que obtém os endereços IP de cada pod atribuído a ele. O serviço Kubernetes refere-se a este objeto para obter o registro dos endereços IP internos do pod para comunicação. Além disso, esses endpoints são usados ​​pelos pods para se expor a um serviço.

No reino Kubernetes, esses endpoints funcionam como uma camada de abstração que ajuda o serviço Kubernetes a garantir que haja uma distribuição de tráfego para pods no cluster. No entanto, quando uma carga de tráfego aumenta, ocorre o problema de escalonamento de tráfego. Isso ocorre porque um único endpoint contém todos os endpoints de rede para cada serviço. E quando essas fontes crescem para um tamanho inaceitável, o desempenho do Kubernetes é afetado negativamente. Em outras palavras, quando o número de endpoints de rede cresce imensamente, a capacidade do Kubernetes de dimensionar a implantação é afetada negativamente. Vamos entender isso com a ajuda da seguinte imagem gráfica:









Aqui, você pode ver que um Endpoint contém todos os pods no cluster e os EndpointSlices são a alternativa extensível e escalável para o Endpoint existente. Há apenas um recurso Endpoint para todo o serviço, mas há mais de um EndpointSlices para o mesmo serviço. Os EndpointSlices ajudam você a dimensionar seus recursos de rede dessa maneira. Para entender o quão significativo é esse problema de escalabilidade, vamos dar um exemplo.



Por exemplo, o serviço Kubernetes tem cerca de 9.000 pods que, de alguma forma, acabam em recursos de endpoint de 2 MB. Um único Endpoint possui todos esses recursos de Endpoint dos serviços. Se qualquer endpoint de rede mudar no endpoint, todo o recurso do endpoint precisa ser distribuído entre cada nó no cluster. Quando se trata de lidar com um cluster com 3.000 nós, torna-se um grande problema, pois um grande número de atualizações precisa ser enviado para cada nó. Portanto, quando você dimensiona mais em apenas um único endpoint, mais difícil se torna o dimensionamento da rede.





No entanto, os EndpointSlices resolvem esse problema permitindo que o Kubernetes dimensione o quanto for necessário. Em vez de usar um único endpoint que contém uma lista enorme de endereços IP e seus números de porta associados, use vários EndpointSlices. Esses EndpointSlices são pequenos pedaços de um único endpoint enorme. Essas fatias são muito menores, mas atenuam a carga causada pelo enorme endpoint. Você pode armazenar até 100 pods em um EndpointSlice. Esses EndpointSlices ajudam a distribuir o serviço para um pod específico. Se algum endpoint de rede for alterado, você só precisará enviar atualizações para um EndpointSlice que contenha no máximo 100 pods. Todos os outros pods na rede permanecem intocados.

Agora, vamos aprender como podemos criar um Kubernetes EndpointSlice.



Como os EndpointSlices são criados no Kubernetes?

Kubernetes EndpointSlices é a melhor alternativa para um único endpoint no cluster Kubernetes. Ele não apenas ajuda você a rastrear todos os endpoints da rede de maneira fácil e eficiente, mas também oferece melhor desempenho em comparação com um único endpoint. Ele também mostra o menor tráfego de rede, oferecendo confiabilidade de dimensionamento. Além disso, o uso de vários EndpointSlices permite colocar menos trabalho no plano de controle e nos nós do cluster Kubernetes.

Você pode ter as etapas que permitem aprender como criar EndpointSlices no cluster Kubernetes nos exemplos a seguir.

Etapa 1: Iniciar o Cluster Minikube

A primeira e mais importante etapa é garantir que o cluster minikube esteja ativo. Um cluster minikube inativo não permitirá que você execute nenhum trabalho no ambiente Kubernetes, portanto, verifique se ele está no modo ativo. Para garantir que o cluster minikube esteja funcionando, use o seguinte comando:

> iniciar minikube

Se o seu cluster minikube não foi iniciado anteriormente ou se estiver no modo de suspensão, este comando o ativará e o colocará em funcionamento. Agora, você tem um cluster minikube ativo. Você está pronto para criar o EndpointSlice em seu ambiente Kubernetes.

Etapa 2: criar uma implantação com o arquivo YAML

O arquivo YAML é mais comumente usado no Kubernetes para criar implantações. Você pode usar o arquivo YAML de implantação pré-existente ou pode criar um novo com o seguinte comando:

> nanoendpoint.yaml

Isso cria um novo arquivo YAML chamado “endpoint.yaml” onde você pode salvar a definição de implantação para configuração. Consulte a definição de implantação na captura de tela a seguir:

Etapa 3: criar o EndpointSlice usando o arquivo YAML

Agora que temos um arquivo YAML que contém a definição de implantação, podemos usá-lo para criar os EndpointSlices em nosso cluster Kubernetes. Precisamos implantar o arquivo de configuração para que possamos ter os EndpointSlices no cluster Kubernetes. Usamos o seguinte comando para implantar o arquivo de configuração:

> kubectl create -f endpoint.yaml

No ambiente Kubernetes, os recursos são criados usando o comando “kubectl create”. Portanto, usamos o comando “kubectl create” para criar os EndpointSlices a partir do arquivo de configuração YAML.

Conclusão

Exploramos os EndpointSlices no ambiente Kubernetes. O EndpointSlice no Kubernetes é um objeto usado para rastrear todos os endpoints de rede no cluster do Kubernetes. É a melhor alternativa para um enorme e único Endpoint no cluster Kubernetes, pois permite melhores opções de escalabilidade e extensibilidade. Esses EndpointSlices permitem que o cluster Kubernetes forneça melhor desempenho colocando menos mão de obra nos nós e no plano de controle. Com a ajuda de um exemplo, aprendemos como criar os EndpointSlices no cluster Kubernetes.