preloader

Kubernetes Ingress: confira as melhores práticas de uso

O Kubernetes Ingress é uma poderosa ferramenta de gerenciamento de tráfego e roteamento em um cluster Kubernetes. Quando aplicações são implementadas em um ambiente Kubernetes, é comum que os desenvolvedores se deparem com diversas instâncias de serviços que precisam ser acessadas de forma confiável e segura por meio da rede.

Mas como realizar tal processo com segurança? É aí que o Kubernetes Ingress entra em cena, atuando como um controlador que simplifica a exposição de serviços para o mundo exterior.

Preparamos esse artigo para abordar as melhores práticas para o uso do Kubernetes Ingress, trazendo os principais pontos de partida para quem deseja explorar um pouco mais as funcionalidades do containzerizador. Boa leitura!

Como funciona o Kubernetes Ingress?

O Ingress funciona como uma camada intermediária entre os serviços em execução no cluster Kubernetes e as solicitações externas, como requisições HTTP, permitindo que os desenvolvedores configurem regras e políticas para rotear o tráfego de entrada para os serviços corretos baseados em diversos critérios, como o nome do host, caminhos da URL, métodos HTTP, entre outros.

Isso facilita a implementação de cenários complexos, como balanceamento de carga, autenticação, autorização e roteamento de tráfego para diferentes versões de aplicações, tudo isso de forma centralizada e altamente configurável.

Dessa forma, o Kubernetes Ingress se torna uma peça fundamental para tornar a implementação e o gerenciamento de aplicações em clusters Kubernetes mais eficientes, escaláveis e flexíveis.

Melhores práticas para uso do Kubernetes Ingress

Veja a seguir as boas práticas para tirar o melhor proveito do Ingress e explorar o máximo das funcionalidades para a sua equipe.

Utilize controladores de Ingress

Para usar o recurso Ingress, é necessário ter um controlador de Ingress em execução no cluster. Os controladores de Ingress abstraem a complexidade do roteamento de tráfego de aplicações Kubernetes e fornecem uma ponte entre serviços internos e externos.

Além disso, um controlador Ingress de produção deve ter recursos como reconfiguração dinâmica, firewall de aplicações web (WAF) leve e moderno e autorização e autenticação.

Faça anotações

As anotações são uma maneira de fornecer informações adicionais sobre um objeto Kubernetes. No caso do Ingress, as anotações podem ser usadas para configurar o controlador de Ingress e definir regras de roteamento.

Por exemplo, a anotação “nginx.ingress.kubernetes.io/rewrite-target” pode ser usada para reescrever o caminho da solicitação antes de encaminhá-la para o serviço.

Utilize TLS

O uso de TLS (Transport Layer Security) é altamente recomendado para proteger o tráfego entre o cliente e o servidor.

O Ingress pode ser configurado para suportar TLS usando certificados SSL/TLS. Além disso, o Kubernetes fornece suporte nativo para a geração e gerenciamento de certificados TLS usando o recurso “cert-manager”.

Dívida clusters com namespaces 

Os namespaces são uma maneira de dividir um cluster Kubernetes em vários ambientes lógicos. O uso de namespaces pode ajudar a organizar e gerenciar melhor os recursos do Kubernetes, incluindo o Ingress.

Por exemplo, é possível criar um namespace para cada ambiente, como desenvolvimento, teste e produção, e implantar o Ingress em cada um deles.

Faça testes 

Testar o Ingress é importante para garantir que ele esteja funcionando corretamente e que as regras de roteamento estejam configuradas de maneira adequada.

O Kubernetes fornece várias ferramentas para testar o Ingress, incluindo o “kubectl port-forward” para encaminhar o tráfego para um serviço e o “curl” para enviar solicitações HTTP.

Utilize logs 

Os logs são uma ferramenta importante para solucionar problemas e entender o comportamento do Ingress. O Kubernetes fornece várias maneiras de visualizar os logs do Ingress, incluindo o “kubectl logs” para exibir os logs de um pod e o “kubectl describe ingress” para exibir informações detalhadas sobre o Ingress.

Você pode saber mais detalhes sobre como utilizar o Ingress com Terraform em outra série de artigos que preparamos.

Controladores Kubernetes Ingress: veja os mais populares

Existem diversos controladores de Ingress que são populares, cada um com suas próprias características e recursos. Confira algumas das diversas opções e escolha a que mais se adequar a sua realidade.

NGINX Ingress Controller

O controlador de Ingress NGINX é um dos mais populares e é mantido pelo projeto Kubernetes. Ele é confiável e fácil de usar, fornecendo recursos como balanceamento de carga, terminação SSL e roteamento virtual baseado em nome.

No entanto, ele não suporta configurações dinâmicas, o que significa que um reload do NGINX é necessário sempre que um novo endpoint do Kubernetes é definido.

Traefik 

O Traefik é outro controlador de Ingress popular de fácil utilização e integração com diversos ambientes Kubernetes. Ele suporta vários protocolos, como TCP, HTTP e HTTPS, e fornece recursos de balanceamento de carga e roteamento.

Ele também suporta configurações dinâmicas, o que significa que não é necessário um reload do Traefik sempre que um novo endpoint do Kubernetes é definido.

HAProxy 

O HAProxy é um controlador de Ingress de alto desempenho que é amplamente utilizado em ambientes de produção. Ele suporta vários protocolos, como TCP, HTTP e HTTPS, e fornece recursos de balanceamento de carga e roteamento. Ele também suporta configurações dinâmicas.

Ambassador

Outro controlador Ingress que é bastante utilizado é o Ambassador, que  é baseado no Envoy Proxy e fornece recursos avançados de roteamento e balanceamento de carga. Ele é fácil de usar e integrar com qualquer ambiente Kubernetes.

Contour

O Contour é um controlador de Ingress baseado no Envoy Proxy que fornece recursos avançados de roteamento e balanceamento de carga. Ele é fácil de usar e integrar com qualquer ambiente Kubernetes. Ele também suporta configurações dinâmicas.

Gloo

Em nossa lista, também temos o Gloo, que trata-se de um controlador Ingress baseado no Envoy Proxy que fornece recursos avançados de roteamento e balanceamento de carga.

Ele é fácil de usar e integrar com qualquer ambiente Kubernetes, sendo suportado também em configurações dinâmicas.

Caddy

Já o Caddy é um controlador de Ingress que é fácil de usar e configurar. Ele suporta vários protocolos, como TCP, HTTP e HTTPS, e fornece recursos de balanceamento de carga e roteamento. Ele também suporta configurações dinâmicas.

Em geral, cada controlador de Ingress tem suas próprias vantagens e desvantagens, e a escolha do controlador de Ingress depende das necessidades específicas do ambiente Kubernetes e dos recursos necessários para a implantação.

Como utilizar o Ingress na sua empresa?

Utilizar o Kubernetes em grandes projetos pode ser um facilitador, mas em algumas situações parceiros experientes como a Vertigo Tecnologia tornam-se a melhor opção para que os processos sejam feitos de maneira segura.

A Vertigo atua há mais de 20 anos no mercado de tecnologias, levando a transformação digital para empresas do setor público e privado.

Entre em contato com o nosso time de especialistas e utilize o Kubernetes Ingress para ser um catalisador de oportunidades para os seus projetos.

Se você ama tecnologia e gosta de se manter atualizado, inscreva-se no nosso blog!
Você também pode se interessar por...
contato

Vamos bater um papo?
Estamos aqui para te ajudar_