O que é um controlador de Ingress do Kubernetes?

Vista para cima de um edifício circular

Autores

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

O que é um controlador de Ingress do Kubernetes? | IBM

Um Controlador de Ingress do Kubernetes é um componente de software especializado que gerencia o tráfego de entrada para aplicações em execução em ambientes Kubernetes, servindo como uma ponte entre usuários externos e serviços conteinerizados.

As empresas modernas dependem fortemente de aplicações distribuídas e cargas de trabalho construídas a partir de dezenas ou centenas de microsserviços. Sem uma orquestração adequada do tráfego, cada serviço precisaria do seu próprio endpoint público, o que geraria problemas significativos de gerenciamento e segurança.

Por exemplo, uma plataforma de saúde pode precisar de pontos de acesso separados para portais de pacientes, dashboards de prestadores, sistemas de faturamento e relatórios de conformidade — uma abordagem que se torna cara e operacionalmente complexa.

Um controlador de Ingress do Kubernetes resolve esse problema atuando como um balanceador de carga e roteador de tráfego inteligente no ponto de entrada da aplicação. Ele estabelece uma rota centralizada de tráfego para que usuários externos acessem serviços internos.

O ecossistema do Kubernetes oferece diversos controladores de Ingress, incluindo ferramentas de código aberto (por exemplo, NGINX, Traefik) disponíveis em plataformas como GitHub, além de soluções proprietárias projetadas para atender às necessidades específicas de cada organização.

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes e fascinantes do setor em IA, automação, dados e muito mais com o boletim informativo da Think. Consulte a declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua inscrição será entregue em inglês. Você pode encontrar um link para cancelar a inscrição em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa declaração de privacidade da IBM para obter mais informações.

O que é o Kubernetes?

Inicialmente desenvolvido pelo Google e doado para a Cloud Native Computing Foundation (CNCF) em 2015, o Kubernetes agora impulsiona a infraestrutura de TI essencial da maioria das empresas Fortune 500, tornando o gerenciamento de controladores de Ingress crítico para operações corporativas. De acordo com uma pesquisa de 2022, 96% das organizações estão usando Kubernetes ou avaliando essa tecnologia para ambientes de produção.1

Antes do Kubernetes, as aplicações normalmente eram executadas em servidores dedicados ou em máquinas virtuais (VMs), o que tornava a escalabilidade cara e demorada. O Kubernetes introduziu contêineres — unidades leves e portáteis que empacotam aplicações com todas as suas dependências.

O Kubernetes revolucionou os fluxos de trabalho de DevOps e a implementação de aplicações ao introduzir a orquestração de contêineres em escala. Essa plataforma de código aberto automatiza a implementação, a escalabilidade e o gerenciamento de aplicações conteinerizadas em uma infraestrutura distribuída, permitindo colaboração sem dificuldades entre equipes de desenvolvimento e operações.

O Kubernetes organiza aplicações em pods — as menores unidades implementáveis compostas por um ou mais contêineres (geralmente contêineres Docker). Esses pods são executados em nós de trabalho dentro de clusters, enquanto um plano de controle coordena todas as operações do cluster. Os serviços fornecem identidades de rede estáveis para grupos de pods, permitindo padrões de comunicação confiáveis.

Os controladores de Ingress normalmente são implementados como pods especializados que monitoram o estado do cluster por meio da API do Kubernetes. Esses controladores rastreiam alterações em recursos de Ingress — objetos de configuração que definem regras de roteamento de tráfego — e atualizam automaticamente suas tabelas de roteamento para refletir novas implementações de aplicações ou atualizações de configuração.

IBM Cloud

Red Hat OpenShift AI on IBM Cloud: implemente cargas de trabalho de IA

Utilize recursos de IA com o Red Hat OpenShift on IBM Cloud. Este vídeo explora como criar, implementar e gerenciar cargas de trabalho de IA com eficiência com uma plataforma de operações escalável de aprendizado de máquina.

O que é Ingress do Kubernetes?

Para entender como os controladores de Ingress funcionam, é essencial compreender o Kubernetes Ingress — o recurso de API (ou objeto Ingress) que define regras de roteamento, direcionando o tráfego externo para serviços dentro de um cluster Kubernetes.

O Kubernetes Ingress é diferente do termo geral de entrada, que se refere ao fluxo de tráfego de entrada em um ambiente de aplicação nativa da nuvem e conteinerizada. No Kubernetes, Ingress refere-se especificamente ao conjunto de regras e configurações que gerenciam como o tráfego de entrada é roteado para diferentes serviços. Já a entrada (ingress), em um sentido mais amplo, refere-se apenas a qualquer tráfego que entra em um sistema (em contraste com egress, que se refere ao tráfego que sai do sistema).

Leia mais sobre ingress versus egress no Kubernetes.

O Kubernetes Ingress fornece uma abordagem declarativa para gerenciar o acesso externo a serviços dentro de um cluster Kubernetes. Em vez de expor serviços individuais (por exemplo, serviços NodePort ou LoadBalancer) diretamente à internet, o Ingress cria uma camada de acesso controlado que roteia solicitações de forma inteligente com base em múltiplos critérios. Esse recurso permite o gerenciamento eficiente do tráfego externo para serviços, normalmente expostos por meio de ClusterIP dentro do cluster Kubernetes.

O Kubernetes Ingress opera por meio de dois componentes complementares.

Recursos de Ingress

Os recursos de Ingress (também chamados de recursos do Kubernetes ou objetos de API do Kubernetes) definem regras de roteamento. Eles são definidos em YAML ou JSON, especificando regras de entrada, certificados SSL, requisitos de autenticação e políticas de tráfego.

Por exemplo, os usuários podem usar o campo ingressClassName para determinar qual controlador de Ingress deve gerenciar o recurso, permitindo o direcionamento de tráfego para um controlador específico quando vários controladores existem em um cluster.

Controladores de Ingress

Os controladores de Ingress são componentes de software que leem e aplicam regras de configuração, atuando como proxies reversos com recursos avançados de gerenciamento de tráfego.

Como funciona um controlador de Ingress do Kubernetes?

Os balanceadores de carga tradicionais de Camada 4, como aqueles para rotas TCP, UDP e HTTP/HTTPS, distribuem tráfego apenas com base em endereços IP e portas. Em contraste, um controlador de Ingress do Kubernetes opera na Camada 7 (a camada de aplicação), possibilitando um roteamento mais sofisticado.

Aproveitando a API Kubernetes Ingress e recursos como HTTPRoute, o controlador de Ingress toma decisões de roteamento com base em atributos específicos de HTTP, como:

  • Caminhos de URL e nomes de host
  • Cabeçalhos e métodos HTTP
  • Conteúdo da solicitação e cookies
  • Tokens de autenticação e contexto do usuário

Essas decisões são baseadas em regras de configuração que determinam as políticas de roteamento e outros requisitos. Os controladores de Ingress monitoram continuamente alterações nessas configurações, atualizando automaticamente o comportamento de roteamento sem intervenção manual, garantindo distribuição de tráfego sem dificuldades e gerenciamento de segurança.

Clusters do Kubernetes podem executar múltiplos controladores de Ingress simultaneamente, cada um lidando com diferentes tipos de tráfego ou aplicações. Cada controlador opera de forma orientada a eventos, respondendo a alterações nos recursos de Ingress ao ler especificações, anotações e metadados, convertendo-os em instruções de roteamento executáveis.

Principais funções de um controlador de Ingress do Kubernetes

Processamento de solicitações

Os controladores de Ingress do Kubernetes examinam as solicitações de entrada e tomam decisões de roteamento com base em regras predefinidas, como nomes de host e nomes DNS. Eles lidam com tráfego HTTP e HTTPS, executam terminação SSL e tomam decisões inteligentes de balanceamento de carga entre várias instâncias de serviço.

Gerenciamento de configuração

Os controladores de Ingress do Kubernetes monitoram continuamente a API do Kubernetes em busca de alterações nos recursos de Ingress em diferentes namespaces. Seja por meio de kubectl, pipelines de CI/CD ou outras ferramentas (por exemplo, Helm, Terraform), o controlador atualiza automaticamente as regras de roteamento sem necessidade de intervenção manual ou reinicialização de serviços.

Balanceamento de carga

Integrada na maioria dos controladores de Ingress do Kubernetes, a funcionalidade de balanceamento de carga distribui solicitações de entrada entre múltiplas instâncias do mesmo serviço, garantindo desempenho ideal e evitando que qualquer instância individual fique sobrecarregada.

Gerenciamento de TLS

Os controladores modernos de Ingress do Kubernetes incluem recursos sofisticados de gerenciamento de SSL/TLS, como terminação TLS, provisionamento automático de certificados, renovação e aplicação de comunicação segura.

Verificação de integridade

Os controladores avançados de Ingress do Kubernetes monitoram continuamente a integridade dos serviços de back-end e redirecionam automaticamente o tráfego para longe de instâncias com falha, garantindo alta disponibilidade e melhor experiência do usuário.

Casos de uso do controlador de Ingress do Kubernetes

Consolidação de aplicações

Grandes organizações usam os controladores de Ingress para consolidar centenas de aplicações internas em pontos de acesso unificados. Essa abordagem reduz os custos de infraestrutura e, ao mesmo tempo, melhora a segurança por meio da aplicação centralizada de políticas. Uma empresa de manufatura global pode encaminhar solicitações para diferentes sistemas ERP regionais, aplicações de cadeia de suprimentos e portais de clientes por meio de uma única implementação de controlador de Ingress.

Ambientes de desenvolvimento e preparação

As equipes de desenvolvimento usam os controladores de Ingress para criar ambientes separados para testar novas funcionalidades. As equipes podem configurar automaticamente novos ambientes de teste e direcionar o tráfego certo para cada um com base na funcionalidade que está sendo desenvolvida.

Integração de parceiros e fornecedores

As empresas usam os controladores de Ingress para compartilhar de forma segura APIs internas com parceiros e fornecedores. Cada organização pode ter diferentes permissões de acesso e limites de uso, todos gerenciados por meio de um único sistema sem a necessidade de criar uma infraestrutura separada.

Distribuição global de tráfego

Organizações multinacionais implementam controladores de Ingress como parte de estratégias globais de gerenciamento de tráfego, direcionando usuários para data centers geograficamente ideais, mantendo políticas consistentes de segurança e monitoramento.

Requisitos de conformidade e auditoria

Setores regulamentados usam controladores de Ingress para implementar os logs necessários, controles de acesso (adicionar quando a página for criada) e políticas de controle de dados. Todo o acesso externo pode ser monitorado e auditado centralmente por meio da camada de Ingress.

Benefícios dos controladores de Ingress do Kubernetes

  • Consolidação de infraestrutura: as arquiteturas tradicionais geralmente exigem balanceadores de carga dedicados para cada aplicação, criando custos significativos de hardware e de operações. Controladores de Ingress permitem que as organizações consolidem múltiplas aplicações em uma infraestrutura compartilhada, reduzindo os custos de balanceamento de carga e melhorando a utilização de recursos.
  • Ciclos de desenvolvimento acelerados: as equipes de desenvolvimento podem implementar e testar novas funcionalidades sem envolver administradores de rede ou configurar balanceadores de carga externos. Controladores de Ingress oferecem suporte a fluxos de trabalho GitOps, nos quais mudanças de roteamento são gerenciadas por meio de controle de versão e pipelines de implementação automatizada.
  • Observabilidade avançada: para fornecer observabilidade avançada, os controladores de Ingress modernos oferecem análises detalhadas sobre padrões de uso de aplicações, comportamento de usuários e gargalos de desempenho. Essa visibilidade possibilita decisões baseadas em dados sobre planejamento de capacidade, adoção de funcionalidades e otimização da experiência do usuário.
  • Aplicação automatizada de segurança: em vez de configurar políticas de segurança em vários sistemas, as organizações podem aplicar autenticação, autorização, limitação de taxa, regras de WAF (firewall de aplicações da web) e proteção contra DDoS por meio das políticas dos controladores de Ingress. As atualizações de segurança podem ser implementadas instantaneamente em todas as aplicações.
  • Portabilidade em nuvem: ao contrário dos serviços de balanceamento de carga específicos de nuvem, os controladores de Ingress fornecem funcionalidades consistentes em diferentes provedores de nuvem e em infraestruturas locais. As aplicações podem ser migradas entre ambientes sem mudanças arquitetônicas.
  • Recursos de escalabilidade dinâmica: os controladores de Ingress podem ajustar automaticamente os padrões de roteamento com base nas condições de tráfego em tempo real, na capacidade do back-end e em políticas configuradas. Esse recurso possibilita um gerenciamento sofisticado de tráfego que se adapta às mudanças nas condições de negócios.

Desafios dos controladores do Ingress

  • Considerações de desempenho: todo o tráfego externo passa pelos controladores de Ingress, tornando-os potenciais pontos de gargalo em ambientes de produção. As organizações devem planejar cuidadosamente a capacidade, implementar monitoramento adequado e projetar estratégias de redundância para garantir alta disponibilidade.
  • Curva de aprendizado e sobrecarga operacional: as equipes precisam desenvolver expertise em conceitos de rede Kubernetes, gerenciamento de configuração em YAML e solução de problemas em sistemas distribuídos, o que pode exigir treinamento significativo e ajustes operacionais.

Opções de controlador de Ingress do Kubernetes

Escolher o controlador de Ingress do Kubernetes certo depende dos requisitos da organização, da infraestrutura existente e das capacidades da equipe. Cada implementação oferece vantagens distintas para casos de uso específicos:

  • Controlador de Ingress NGINX: a opção mais amplamente adotada, o NGINX Ingress Controller (ingress-nginx), oferece desempenho de nível corporativo e amplos recursos de personalização. O ecossistema maduro do NGINX fornece documentação abrangente, opções de suporte comercial e escalabilidade comprovada.
  • Controlador de Ingress Traefik: o Traefik é projetado para ambientes modernos em nuvem, com ênfase em descoberta automática de serviços e facilidade de uso. O Traefik se destaca em ambientes dinâmicos nos quais os serviços do Kubernetes mudam frequentemente, oferecendo integração incorporada com malhas de serviço e registros de contêineres.
  • Controlador de Ingress HAProxy: criado com base no balanceador de carga HAProxy, padrão do setor, o HAProxy fornece desempenho robusto para cenários de alto tráfego. Esse controlador habilita algoritmos avançados de balanceamento de carga, estatísticas detalhadas e controle de tráfego refinado.
  • Istio Gateway: como parte da abrangente plataforma de malha de serviço Istio, o Istio Gateway oferece recursos avançados de gerenciamento de tráfego, segurança e observabilidade. O Istio Gateway também oferece recursos sofisticados, como divisão de tráfego, injeção de falhas e rastreamento distribuído.
  • Soluções de provedores de nuvem: os principais provedores de nuvem oferecem controladores de Ingress otimizados que se integram profundamente às suas plataformas. AWS Load Balancer Controller, Google Cloud Load Balancer, Azure Application Gateway Ingress Controller e IBM Cloud Application Load Balancer fornecem integração sem dificuldades com serviços nativos em nuvem, escalabilidade automatizada e cobrança simplificada.
  • Controladores baseados em Envoy: os controladores de Ingress criados no proxy Envoy, incluindo Ambassador e Emissary-Ingress, oferecem gerenciamento de tráfego de alto desempenho com recursos avançados de observabilidade. Essas soluções geralmente incluem autenticação integrada, limitação de taxa e funcionalidade de API gateway, tornando-as adequadas para organizações que desenvolvem estratégias abrangentes de gerenciamento de API.
Soluções relacionadas
IBM Red Hat OpenShift

O Red Hat OpenShift on IBM Cloud é uma plataforma de contêineres OpenShift (OCP) totalmente gerenciada.

Explore o Red Hat OpenShift
Soluções de contêiner

As soluções de contêiner executam e expandem cargas de trabalho conteinerizadas com segurança, inovação em código aberto e implementação ágil.

Explore contêineres
Serviços de consultoria em nuvem 

Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias especializadas.

Serviço de nuvem
Dê o próximo passo

O IBM® Instana Observability oferece observabilidade automatizada de Kubernetes e recursos de APM projetados para monitorar todo o seu stack a de aplicações em Kubernetes — desde nós e pods até contêineres e aplicações — para todas as distribuições de Kubernetes.

Conheça o IBM Instana Observability Descubra o Instana