[Editor– Este post é um trecho do nosso eBook completo, Gerenciamento de tráfego do Kubernetes com o F5 NGINX: um guia prático. Baixe-o gratuitamente hoje mesmo.]
Além do tráfego HTTP, o NGINX Ingress Controller faz o balanceamento de carga do tráfego TCP e UDP. Assim, você pode usá-lo para gerenciar o tráfego de uma ampla variedade de aplicativos e utilitários baseados nesses protocolos, incluindo:
- MySQL, LDAP e MQTT – aplicativos baseados em TCP usados por muitas aplicações populares
- DNS, syslog e RADIUS – utilitários baseados em UDP usados por dispositivos de borda e aplicações não transacionais
O balanceamento de carga TCP e UDP com o NGINX Ingress Controller também é uma solução eficaz para distribuir o tráfego de rede entre aplicações do Kubernetes nas seguintes circunstâncias:
- Você está usando criptografia de ponta a ponta (EE2E) e deixando que a aplicação cuide da criptografia e da descriptografia, em vez do NGINX Ingress Controller
- Você precisa de balanceamento de carga de alto desempenho para aplicações baseadas em TCP ou UDP
- Você quer minimizar a quantidade de alterações ao migrar um balanceador de carga de rede (TCP/UDP) existente para um ambiente Kubernetes
O NGINX Ingress Controller inclui dois recursos NGINX Ingress compatíveis com o balanceamento de carga TCP/UDP:
- GlobalConfiguration são normalmente usados por administradores de cluster para especificar as portas TCP/UDP (
listeners) disponíveis para uso pelas equipes de DevOps. Observe que cada implantação do NGINX Ingress Controller pode ter apenas um recurso GlobalConfiguration. - TransportServer são normalmente usados pelas equipes de DevOps para configurar o balanceamento de carga TCP/UDP de suas aplicações. O NGINX Ingress Controller escuta apenas nas portas que foram configuradas pelo administrador no recurso GlobalConfiguration. Isso evita conflitos entre portas e oferece uma camada adicional de segurança, garantindo que as equipes de DevOps exponham a serviços externos públicos somente as portas que o administrador determinou previamente como seguras.
O diagrama a seguir apresenta um exemplo de caso de uso dos recursos GlobalConfiguration e TransportServer. No arquivo gc.yaml, o administrador do cluster define listeners TCP e UDP em um recurso GlobalConfiguration. No arquivo ts.yaml, um engenheiro de DevOps faz referência ao listener TCP em um recurso TransportServer que encaminha o tráfego para uma implantação do MySQL.

O recurso GlobalConfiguration em gc.yaml define dois listeners: um listener UDP na porta 514 para conexão com um serviço syslog e um listener TCP na porta 5353 para conexão com um serviço MySQL.
Carregando exemplo de código…
As linhas 6–8 do recurso TransportServer em ts.yaml fazem referência ao listener TCP definido em gc.yaml pelo nome (mysql-tcp) e as linhas 9–14 definem a regra de roteamento que envia o tráfego TCP para o upstream mysql-db.
Carregando exemplo de código…
Neste exemplo, um engenheiro de DevOps usa o cliente MySQL para verificar se a configuração está funcionando, conforme confirmado pela saída que apresenta a lista de tabelas no banco de dados rawdata_content_schema dentro da implantação do MySQL.
$ echo “SHOW TABLES” | mysql –h <external_IP_address> -P <port> -u <user> –p rawdata_content_schema Enter Password: <password>
Tables_in_rawdata_content_schema
authors
postsOs recursos TransportServer para tráfego UDP são configurados de forma semelhante. Para ver um exemplo completo, consulte Balanceamento de carga TCP/UDP básico no repositório do NGINX Ingress Controller no GitHub. Usuários avançados do NGINX podem estender o recurso TransportServer com configurações nativas do NGINX usando a chave stream-snippets do ConfigMap, conforme mostrado no exemplo Suporte ao balanceamento de carga TCP/UDP no repositório.
Para obter mais informações sobre os recursos que você pode configurar nos recursos TransportServer, consulte a documentação do NGINX Ingress Controller.
Este post é um trecho do nosso eBook completo, Gerenciamento do tráfego do Kubernetes com o NGINX: um guia prático. Baixe-o gratuitamente hoje mesmo.
Experimente você mesmo o NGINX Ingress Controller baseado no NGINX Plus com uma avaliação gratuita de 30 dias hoje mesmo ou entre em contato conosco para conversar sobre seus casos de uso.
Sobre o autor

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.
Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.
Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.