Source — unsplash — parece uma imagem 3D né :D

K8s: Services e Ingress Controllers 2/3(*)

O que são e qual tipo de problema resolvem?

João Brito

--

Dando sequência à série sobre Services e Ingress Controllers, preparei especialmente esse artigo para falar sobre Ingress, componente que pode substituir a necessidade de criar vários Load Balancers para redirecionar o tráfego de aplicações. O primeiro texto da série, que explica sobre o uso do Services, segue aqui para consulta.

Assumindo que você já tenha configurado o acesso às aplicações usando um Load Balancer do seu provedor de Infraestrutura, você deve estar se perguntando se realmente vale a pena usar o Ingress.

Sabendo que, para cada aplicação que precise expor o serviço para usuários externos, se faz necessária a criação de um novo Load Balancer, o custo é uma razão para adotar o Ingress. Levando em conta que há um limite de criação de unidades de Load Balancer, sobretudo na nuvem pública, a questão operacional é outra razão motivadora. Com o Ingress, você precisará apenas de um Load Balancer no provedor de Infraestrutura e poderá criar inúmeras entradas de acesso às aplicações.

Vistas as ponderações, passemos ao meu objetivo, que é te apresentar como tirar o melhor proveito desse componente.

Em termos práticos, o Ingress funciona configurando regras de layer 7, como TLS, VirtualHost, Path, LoadBalancer e outras. Também, vale notar que nesse formato as requisições não chegam diretamente aos services; elas vão primeiro para o endpoint do Ingress e depois para o service de destino.

No exemplo abaixo, o Ingress está com duas regras para redirecionar o tráfego de acordo com o domínio de entrada.

Dá para usar ainda outra feature de regras, o fanout, que pode redirecionar o tráfego usando path, como abaixo:

Você percebe que nada mudou com a requisição? Isso acontece, porque o Ingress tem dois recursos: o Ingress Controller e Ingress Resource.

O Ingress Controller é a parte “concreta” do Ingress, a que existe no mundo real da nuvem. É ela que roda a aplicação de router/filter/balance, criando e atualizando as configurações internas; e direcionando o tráfego interno para os services.

O Ingress Resource é a parte de configuração. É ela que diz ao controller o que fazer com aquele tráfego específico. Normalmente, é com ela que você mais interage, criando e atualizando seus recursos.

Então, com o Ingress, você terá algo parecido com isso:

Nginx — Ingress

Termino essa parte por aqui.(*) Na próxima, trarei uma demo com KinD para você ver as coisas acontecendo de verdade.

Para acompanhar as publicações, siga a Getup no Medium e Twitter. Ouça também o #Kubicast, o podcast sobre Kubernetes, em um dos players: Spotify, Overcast, Itunes ou RadioPublic.

Deixe na página comentários, dúvidas e/ou sugestões.

#Kubernetes #DevOps #SRE #docker #Containers #Ingress #Services

--

--

João Brito
João Brito

Written by João Brito

Blog moved to getup.io/blog - A devops enthusiast. Trying to establish myself in this crazy market that until yesterday called me a sysadmin.