YARP Kubernetes Ingress: o que você precisa saber

YARP Kubernetes Ingress: o que você precisa saber

Antes de mergulhar nos vários controladores de entrada, vamos revisar rapidamente o que é um controlador de entrada do Kubernetes e o que faz um controlador de entrada.

- ClusterIP – adiciona endpoints internos para comunicação no cluster.

- NodePort – Expõe uma porta estática em cada um dos nós para rotear chamadas externas para serviços internos.

- LoadBalancer – cria um balanceador de carga externo para rotear solicitações externas para serviços internos.

Embora um Ingress não seja um serviço do Kubernetes, ele também pode ser usado para expor serviços a solicitações externas. A vantagem do Ingress sobre LoadBalancer ou NodePort é que o Ingress pode consolidar regras de roteamento em um único recurso para expor vários serviços.

Por que usar um proxy reverso?

No caso de arquiteturas de microsserviços, vários endpoints geralmente precisam ser combinados para reduzir a complexidade dos clientes que os consomem. Esse é um dos principais motivos para usar proxies reversos e gateways de API, respectivamente.

O que é YARP?

Primeiro vamos entender as siglas. YARP significa Yet Another Reverse Proxy. É a nova implementação da Microsoft que visa consolidar múltiplas atividades internas relacionadas a proxies reversos.

Claro, podemos encontrar outras implementações de proxy reverso no mercado, mas o que torna este tão especial é que ele se integra totalmente ao ambiente ASP.NET, sendo facilmente customizado e modificado para atender a requisitos específicos.

Alguns dos recursos suportados por essa implementação são:

- Definições de rota com base na configuração dinâmica.
- Modelo de pipeline para extensibilidade.
- Balanceamento de carga com suporte para algoritmos diferentes e personalizados.
- Afinidade de sessão para garantir que as solicitações de um determinado cliente sejam sempre enviadas para o mesmo servidor de destino.
- Transformação para modificar a solicitação enviada ou a resposta recebida do servidor de destino.
- Autorização e CORS especificados por rota.

Se lermos essas características com atenção, pode parecer que estamos olhando para um tipo de gateway de API em vez de um proxy reverso, mas a verdade é que os gateways de API são um tipo específico de proxies reversos.

Como criar nossa primeira implementação YARP

Para aqueles de nós que já estão familiarizados com .NET, o processo é relativamente simples. O YARP está disponível para .NET Core 3.1 e .NET 5, mas vamos focar no .NET 5 por ser a versão mais recente. Segue o passo a passo para criar a implementação:

1) Abrimos o Visual Studio e selecionamos para criar um projeto web ASP.NET:

2) Instalamos o pacote NuGet mais recente usando o console do gerenciador de pacotes.

3) Procure o pacote NuGet Yarp.ReverseProxy em sua versão mais recente e instale-o.

Agora estamos prontos para começar a usar o YARP. Para habilitar o YARP em tempo de execução, precisamos encapsular nosso Program.cs, como é usual no ASP.NET.

Uma vez atualizado nosso Program.cs, procedemos com a configuração. Para isso utilizamos o arquivo appsettings.json.

Feito isso, estamos prontos para rodar nossa solução e usar nossos back-ends, com isso chegamos ao fim.

Como você pode ver, combinamos proxy reverso, YARP, .NET e muito mais para criar uma solução que o ajudará. Espero que tenha sido do seu agrado.

Até logo!

⚠️
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.