1
resposta

[Sugestão] iac aws

Configurando o Load Balancer no Kubernetes

Embora as configurações do Kubernetes possam parecer complicadas no começo, elas são essenciais para garantir que nossas aplicações funcionem de forma adequada e escalável. No caso da criação de um Load Balancer, por exemplo, precisamos passar por alguns passos importantes para configurá-lo corretamente.

Vamos revisar os detalhes dessas configurações de forma simplificada, para que possamos entender e aplicar o que é necessário para expor nossa aplicação ao mundo externo.

  1. Definindo a Metadata

O primeiro passo na configuração do Load Balancer é a definição dos metadados (metadata), que contêm informações complementares sobre o recurso, como seu nome. Esses dados não influenciam diretamente no funcionamento do recurso, mas ajudam a organizá-los de maneira mais eficiente.

metadata {
name = "django-lb"
}

Aqui, estamos nomeando o nosso Load Balancer como django-lb. Isso nos ajuda a identificar o recurso de forma clara e objetiva dentro do Kubernetes.

  1. Especificando o Recurso com o spec

Em seguida, dentro da configuração do Load Balancer, precisamos especificar suas propriedades mais importantes no bloco spec. O spec é onde definimos os parâmetros de operação do recurso, como o tipo de Load Balancer, as portas e o seletor que irá vincular o Load Balancer à nossa aplicação.

Definindo o Tipo de Recurso

No campo type, precisamos informar o tipo do recurso que estamos criando. Como queremos criar um Load Balancer, o valor será "LoadBalancer", o que instrui o Kubernetes a criar um load balancer externo.

type = "LoadBalancer"

Esse campo é fundamental para que o Kubernetes saiba que o serviço precisa de um IP público e que o tráfego externo será balanceado entre os PODs do cluster.

Definindo as Portas

Em seguida, precisamos especificar as portas no nosso Load Balancer. Existem duas portas que precisamos configurar: a porta de entrada (onde o tráfego externo chegará) e a porta de saída (onde o tráfego será encaminhado para o container).

port {
port = 8000
target_port = 8000
}

port: é a porta que o Load Balancer vai expor externamente.

target_port: é a porta dentro do container onde a aplicação está escutando.

Neste caso, estamos usando a porta 8000 para ambos os campos, já que a nossa aplicação está configurada para rodar nessa porta.

Selecionando a Aplicação com o selector

Agora, para que o Load Balancer saiba para qual aplicação ele deve direcionar o tráfego, precisamos usar o selector. Esse campo é utilizado para selecionar os PODs da aplicação com base nas labels que foram atribuídas a eles durante a criação.

No nosso caso, nossa aplicação tem a seguinte label:

labels = {
nome = "api"
}

Portanto, o selector no Load Balancer será configurado para buscar PODs com a label correspondente:

selector = {
nome = "api"
}

Isso garante que o Load Balancer direcionará o tráfego para os PODs que possuem a label nome = "api", ou seja, nossa aplicação específica.

  1. Juntando Tudo

Agora que já configuramos todos os parâmetros necessários, basta juntar o bloco metadata com o bloco spec para finalizar a configuração do Load Balancer. O código final ficará assim:

metadata {
name = "django-lb"
}

spec {
selector = {
nome = "api"
}
port {
port = 8000
target_port = 8000
}
type = "LoadBalancer"
}

  1. Conclusão

Com essa configuração, o Terraform (ou qualquer ferramenta de automação que você esteja utilizando) poderá criar um Load Balancer no Kubernetes que irá:

Expor a aplicação externamente na porta 8000.

Balancear o tráfego entre os PODs da aplicação, que foram selecionados por meio das labels.

Garantir que o tráfego chegue corretamente até os containers que estão rodando a aplicação.

Esse é o processo básico para configurar um Load Balancer no Kubernetes. Como podemos ver, a criação do Load Balancer envolve especificar o tipo do recurso, as portas e a aplicação que será acessada, além de associar o tráfego com a aplicação correta por meio do selector.

1 resposta

Oi, Ubirajara.

Achei muito clara a forma como você detalhou a configuração do LoadBalancer, explicando cada parte do bloco de configuração, como metadata, spec, ports e selector. Essa explicação ajuda bastante a entender como o Kubernetes conecta o tráfego externo diretamente aos pods corretos.

Continue praticando esse tipo de configuração, pois ela é essencial em cenários de produção.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!