Anunciando o lançamento do NGINX Gateway Fabric 1.2.0

NGINX | 29 de março de 2024

Temos o prazer de compartilhar as últimas novidades sobre o NGINX Gateway Fabric, nossa implementação em conformidade com a API Gateway do Kubernetes. Recentemente, lançamos a versão 1.2.0, que traz vários novos recursos e melhorias interessantes. Esta versão se concentra em aprimorar os recursos da plataforma e garantir que ela atenda às necessidades dos nossos usuários. Incluímos suporte ao F5 NGINX Plus e ampliamos a abrangência da nossa API para contemplar os casos de uso mais solicitados. Acreditamos que essas melhorias proporcionarão uma experiência melhor a todos os nossos usuários e os ajudarão a alcançar seus objetivos com mais eficiência.

Figura 1: Visão geral do design e da arquitetura do NGINX Gateway Fabric

Visão geral do NGINX Gateway Fabric 1.2.0:

  • Suporte ao NGINX Plus – O NGINX Gateway Fabric agora oferece suporte ao NGINX Plus no plano de dados, proporcionando maior disponibilidade, métricas detalhadas e painéis de observabilidade em tempo real.
  • BackendTLSPolicy – A verificação TLS permite que o NGINX Gateway Fabric confirme a identidade da aplicação de backend, protegendo contra um possível sequestro da conexão por aplicações mal-intencionadas. Além disso, o TLS criptografa o tráfego dentro do cluster, garantindo uma comunicação segura entre o cliente e a aplicação de backend.
  • URLRewrite – O NGINX Gateway Fabric agora oferece suporte à reescrita de URLs em objetos Route. Com esse recurso, você pode modificar facilmente a URL original da solicitação e redirecioná-la para um destino mais adequado. Dessa forma, à medida que as APIs das suas aplicações de backend forem alteradas, você poderá manter consistentes as APIs disponibilizadas aos seus clientes.
  • Telemetria do produto – Agora que a telemetria do produto está presente no NGINX Gateway Fabric, podemos ajudar a melhorar ainda mais a eficiência operacional da sua infraestrutura ao entender como você usa o produto em seu ambiente. Além disso, planejamos compartilhar regularmente essas informações com a comunidade durante nossas reuniões.

A seguir, analisaremos mais detalhadamente os novos recursos.

Quais são as novidades do NGINX Gateway Fabric 1.2.0?

Suporte ao NGINX Plus

A versão 1.2.0 do NGINX Gateway Fabric foi lançada com suporte ao NGINX Plus, oferecendo aos usuários muitos novos benefícios. Com a nova atualização, os usuários agora podem aproveitar os recursos avançados do NGINX Plus em suas implantações, incluindo métricas adicionais do Prometheus, recarregamentos dinâmicos de upstreams e o painel do NGINX Plus. Essa atualização também oferece a opção de obter suporte diretamente da NGINX para o seu ambiente.

Métricas adicionais do Prometheus

Ao usar o NGINX Plus como plano de dados, métricas avançadas adicionais serão exportadas juntamente com as métricas que você normalmente obteria com o NGINX Open Source. Entre os destaques estão métricas relacionadas a solicitações HTTP, fluxos, conexões e muito mais. Para ver a lista completa, consulte o exportador do Prometheus da NGINX, que oferece uma lista prática, mas observe que o exportador não é estritamente necessário para o NGINX Gateway Fabric. Com qualquer instalação do Prometheus ou de um coletor compatível com o Prometheus, você pode coletar essas métricas em sua pilha de observabilidade e criar painéis e alertas usando uma camada consistente em sua arquitetura. As métricas do Prometheus ficam automaticamente disponíveis no NGINX Gateway Fabric pela porta HTTP 9113. Você também pode alterar a porta padrão atualizando o modelo do Pod. Se estiver procurando uma configuração simples, acesse nossa página do GitHub para obter mais informações sobre como implantar e configurar o Prometheus para iniciar a coleta. Como alternativa, se quiser apenas visualizar as métricas sem realizar a configuração, você pode usar o painel do NGINX Plus, explicado na próxima seção. Depois de instalar o Prometheus no cluster, você pode acessar o painel executando o encaminhamento de porta em segundo plano. kubectl -n monitoring port-forward svc/prometheus-server 9090:80

Gráfico do Prometheus com conexões aceitas pelo NGINX Gateway Fabric

Figura 2: gráfico do Prometheus mostrando as conexões aceitas pelo NGINX Gateway Fabric


A configuração acima funcionará mesmo se você também estiver usando o NGINX Open Source padrão como plano de dados! No entanto, você não verá nenhuma das métricas adicionais fornecidas pelo NGINX Plus. À medida que o tamanho e o escopo do seu cluster aumentarem, recomendamos avaliar como as métricas do NGINX Plus podem ajudar a resolver rapidamente problemas de planejamento de capacidade, incidentes e até mesmo falhas em aplicações de backend.

Recarregamentos dinâmicos de upstreams

Os recarregamentos dinâmicos de upstream, habilitados automaticamente pelo NGINX Gateway Fabric quando instalado com o NGINX Plus, permitem que o NGINX Gateway Fabric atualize as configurações do NGINX sem precisar recarregá-lo. Tradicionalmente, quando ocorre um recarregamento do NGINX, as conexões existentes são processadas pelos processos de trabalho antigos, enquanto os recém-configurados processam as novas conexões. Quando todas as conexões antigas são concluídas, os processos de trabalho antigos são interrompidos, e o NGINX continua operando apenas com os recém-configurados. Dessa forma, as alterações de configuração são processadas de maneira controlada até mesmo no NGINX Open Source. No entanto, quando o NGINX está sob alta carga, manter processos de trabalho antigos e novos pode gerar uma sobrecarga de recursos capaz de causar problemas, especialmente ao tentar executar o NGINX Gateway Fabric com o mínimo possível de recursos. Os recarregamentos dinâmicos de upstream disponíveis no NGINX Plus contornam esse problema ao fornecer um endpoint de API para alterações de configuração, que o NGINX Gateway Fabric usa automaticamente quando disponível. Isso reduz a necessidade de recursos adicionais para manter processos de trabalho antigos e novos durante o recarregamento. À medida que você fizer alterações no NGINX Gateway Fabric com mais frequência, os recarregamentos também ocorrerão com maior frequência. Se quiser saber com que frequência ou quando os recarregamentos ocorrem na sua instalação atual do NGF, consulte a métrica do Prometheus nginx_gateway_fabric_nginx_reloads_total. Para uma análise completa e aprofundada do problema, confira o artigo de Nick Shadrin aqui! Veja um exemplo da métrica no painel do Prometheus em um ambiente com duas implantações do NGINX Gateway Fabric:

Gráfico do Prometheus com o total de recarregamentos do NGINX Gateway Fabric

Figura 3: Gráfico do Prometheus mostrando o total de recarregamentos do NGINX Gateway Fabric

Painel do NGINX Plus

Como mencionado anteriormente, se você procura uma maneira rápida de visualizar as métricas do NGINX Plus sem uma instalação do Prometheus ou uma stack de observabilidade, o painel do NGINX Plus oferece monitoramento em tempo real das métricas de desempenho, que você pode usar para solucionar incidentes e acompanhar a capacidade dos recursos. O painel disponibiliza imediatamente diferentes visualizações de todas as métricas fornecidas pelo NGINX Plus e pode ser acessado facilmente por meio de uma porta interna. Se quiser conferir rapidamente os recursos do painel, acesse nosso site de demonstração em demo.nginx.com. Para acessar o painel do NGINX Plus na sua instalação do NGINX Gateway Fabric, você pode encaminhar as conexões para a porta 8765 da sua máquina local por meio do encaminhamento de portas: kubectl port-forward -n nginx-gateway 8765:8765 Em seguida, abra o navegador de sua preferência e digite http://localhost:8765/dashboard.html na barra de endereços.

Painel do NGINX Plus

Figura 4: Visão geral do painel do NGINX Plus

BackendTLSPolicy

Esta versão agora conta com o tão aguardado suporte à BackendTLSPolicy. A BackendTLSPolicy introduz a comunicação TLS criptografada entre o NGINX Gateway Fabric e a aplicação, aumentando significativamente a segurança do canal de comunicação. Veja um exemplo de como aplicar a política especificando configurações como cifras e protocolos TLS ao validar certificados de servidor com uma autoridade certificadora (CA) confiável. A BackendTLSPolicy permite que os usuários protejam o tráfego entre o NGF e seus backends. Também é possível definir a versão mínima do TLS e os conjuntos de cifras. Isso impede que aplicações mal-intencionadas sequestrem a conexão e criptografa o tráfego dentro do cluster. Para configurar a terminação TLS no backend, primeiro crie um ConfigMap com o certificado da CA que você deseja usar. Para obter ajuda com o gerenciamento de certificados internos do Kubernetes, consulte este guia.


kind: ConfigMap
apiVersion: v1
metadata:
  name: backend-cert
data:
  ca.crt: 
         < -----BEGIN CERTIFICATE-----
	   -----END CERTIFICATE-----
          >

Em seguida, criamos a BackendTLSPolicy, que tem como destino o Service secure-app e faz referência ao ConfigMap criado na etapa anterior:


apiVersion: gateway.networking.k8s.io/v1alpha2
kind: BackendTLSPolicy
metadata:
  name: backend-tls
spec:
  targetRef:
    group: ''
    kind: Service
    name: secure-app
    namespace: default
  tls:
    caCertRefs:
    - name: backend-cert
      group: ''
      kind: ConfigMap
    hostname: secure-app.example.com

Reescrita de URL

Com um filtro URLRewrite, você pode modificar a URL original de uma solicitação recebida e redirecioná-la para outra URL sem nenhum impacto no desempenho. Isso é particularmente útil quando seus aplicativos de backend alteram a API exposta, mas você deseja manter a compatibilidade com versões anteriores para os clientes existentes. Você também pode usar esse recurso para disponibilizar aos clientes uma URL de API consistente e, ao mesmo tempo, redirecionar as solicitações para diferentes aplicativos com URLs de API distintas, oferecendo uma API de “experiência” que combina as funcionalidades de várias APIs para proporcionar mais conveniência e melhor desempenho aos clientes. Para começar, vamos criar um gateway para o NGINX Gateway Fabric. Isso nos permitirá definir listeners HTTP e configurar a porta 80 para obter o melhor desempenho.


apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: cafe
spec:
  gatewayClassName: nginx
  listeners:
  - name: http
    port: 80
    protocol: HTTP

Vamos criar um recurso HTTPRoute e configurar filtros de solicitação para reescrever todas as solicitações de /coffee para /beans. Também podemos disponibilizar um endpoint /latte que é reescrito para remover o prefixo /latte antes de ser processado pelo backend (“/latte/126” se torna “/126”).


apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: coffee
spec:
  parentRefs:
  - name: cafe
    sectionName: http
  hostnames:
  - "cafe.example.com"
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /coffee
    filters:
    - type: URLRewrite
      urlRewrite:
        path:
          type: ReplaceFullPath
          replaceFullPath: /beans
    backendRefs:
    - name: coffee
      port: 80
  - matches:
    - path:
        type: PathPrefix
        value: /latte
    filters:
    - type: URLRewrite
      urlRewrite:
        path:
          type: ReplacePrefixMatch
          replacePrefixMatch: /
    backendRefs:
    - name: coffee
      port: 80

O recurso de reescrita HTTP ajuda a garantir flexibilidade entre os endpoints no lado do cliente e a forma como eles são mapeados no backend. Ele também permite redirecionar o tráfego de uma URL para outra, o que é particularmente útil ao migrar conteúdo para um novo site ou ao migrar o tráfego de uma API. Embora o NGINX Gateway Fabric ofereça suporte a reescritas baseadas em caminho, atualmente ele não oferece suporte a redirecionamentos baseados em caminho. Fale conosco se esse for um recurso necessário para o seu ambiente.

Telemetria do produto

Decidimos incluir a telemetria do produto como um mecanismo para coletar feedback passivamente como parte da versão 1.2. Esse recurso coletará diversas métricas do seu ambiente e as enviará à nossa plataforma de coleta de dados a cada 24 horas. Nenhuma informação de identificação pessoal (PII) é coletada, e você pode consultar a lista completa dos dados coletados aqui. Temos o compromisso de oferecer total transparência sobre a funcionalidade de telemetria. Embora documentemos todos os campos coletados e você possa verificar em nosso código o que coletamos, sempre haverá a opção de desativá-la completamente. Pretendemos analisar regularmente, junto à comunidade, observações interessantes com base nas estatísticas coletadas durante nossas reuniões da comunidade. Não deixe de participar!

Recursos

Para conferir o changelog completo do NGINX Gateway Fabric 1.2.0, consulte as Notas de versão. Para experimentar o NGINX Gateway Fabric para Kubernetes com o NGINX Plus, inicie hoje mesmo sua avaliação gratuita de 30 dias ou entre em contato conosco para conversar sobre seus casos de uso. Se quiser participar, saber o que vem por aí ou consultar o código-fonte do NGINX Gateway Fabric, acesse nosso repositório no GitHub! Realizamos reuniões da comunidade quinzenalmente, às segundas-feiras, às 9h no horário do Pacífico/17h GMT. O link da reunião, as atualizações, a pauta e as notas estão no Calendário de reuniões do NGINX Gateway Fabric. Os links também estão sempre disponíveis no arquivo README do nosso GitHub.

Compartilhar
Tags: F5 NGINX

Sobre os autores

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
NGINX | 10/10/2024

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
NGINX | 17/06/2024

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
NGINX | 14/07/2021

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
NGINX | 02/04/2019

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
NGINX | 24/05/2018

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
NGINX | 19/04/2016

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.