BLOG | NGINX

Como melhorar a visibilidade no Kubernetes

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Jenn Gile
Jenn Gile
Publicado em 08 de março de 2021

Editor – Este post faz parte de uma série de 10 partes:

  1. Reduza a complexidade com o Kubernetes de nível de produção
  2. Como melhorar a resiliência no Kubernetes com gerenciamento avançado de tráfego
  3. Como melhorar a visibilidade no Kubernetes (este post)
  4. Seis maneiras de proteger o Kubernetes usando ferramentas de gerenciamento de tráfego
  5. Um guia para escolher um controlador Ingress, parte 1: Identifique seus requisitos
  6. Um guia para escolher um controlador Ingress, parte 2: Riscos e preparação para o futuro
  7. Um guia para escolher um controlador Ingress, parte 3: Código aberto vs. Padrão vs. Comercial
  8. Um guia para escolher um controlador Ingress, parte 4: Opções do controlador de entrada NGINX
  9. Como escolher uma malha de serviço
  10. Teste de desempenho de controladores de entrada NGINX em um ambiente de nuvem Kubernetes dinâmico

Você também pode baixar o conjunto completo de blogs como um e-book gratuito – Levando o Kubernetes do teste à produção .
A adoção de microsserviços acelera as experiências digitais, mas as arquiteturas de microsserviços também podem tornar essas experiências mais frágeis. Enquanto seus desenvolvedores estão correndo rápido para lançar novos aplicativos, sua arquitetura pode estar colocando você em maior risco de interrupções, exposições de segurança e tempo desperdiçado em solução de problemas ineficientes ou na correção de problemas evitáveis. Neste segundo blog da nossa série sobre Kubernetes de nível de produção, examinamos como os componentes que fornecem visibilidade de tráfego podem reduzir a complexidade e melhorar a segurança em seus ambientes de microsserviços.

Ganhe visibilidade para obter insights

Primeiro, vejamos algumas definições:

  • Visibilidade – O estado de ser capaz de ver ou ser visto
  • Insight – Uma compreensão profunda de uma pessoa ou coisa

Em uma pesquisa de 2020 da StackRox , 75% dos usuários do Kubernetes identificaram a visibilidade como um recurso "indispensável". Concordamos que a visibilidade é fundamental no Kubernetes, pois pode ser especialmente difícil saber o que está implantado. No entanto, 95% dos entrevistados do State of Application Strategy (SOAS) de 2021 da F5 relataram que, embora tenham uma riqueza de dados, não têm os insights necessários sobre desempenho, segurança e disponibilidade de aplicativos para proteger e desenvolver sua infraestrutura e negócios. Então por que o insight é importante e como obtê-lo?

Com insight, você pode:

  • Fortaleça a segurança e a conformidade detectando vulnerabilidades e possíveis vetores de ataque
  • Reduza interrupções e tempo de inatividade descobrindo problemas antes que seus clientes o façam
  • Melhore a eficiência da solução de problemas encontrando a causa raiz dos problemas do aplicativo
  • Confirme se o seu tráfego está indo apenas para onde você quer que ele vá
  • Saiba exatamente o que está sendo executado em seus ambientes Kubernetes e se está configurado e protegido corretamente
  • Descubra se você está usando a quantidade certa de recursos com base na latência e no histórico de desempenho
  • Preveja as necessidades sazonais com base em padrões de tráfego anteriores
  • Medir o desempenho em termos de tempo de resposta para rastrear o desempenho em relação aos acordos de nível de serviço (SLAs) e servir como um sistema de alerta precoce antes que os problemas afetem a experiência do usuário

Para obter insights, você precisa de dois tipos de dados de visibilidade: em tempo real e históricos. Dados em tempo real permitem que você diagnostique a origem de um problema que está acontecendo agora, enquanto dados históricos fornecem uma perspectiva sobre o que é "normal" versus o que é uma exceção. Combinados, esses dois tipos de fontes de visibilidade podem fornecer insights cruciais sobre o desempenho do aplicativo e do Kubernetes.

Assim como acontece com outros investimentos em tecnologia, você também precisa de uma estratégia sobre como colher os benefícios. O relatório da SOAS também indica que as pessoas não conseguem obter insights valiosos devido a fatores organizacionais relacionados à contratação e ao desenvolvimento de funcionários, estratégia e processos, e consenso sobre para que os dados devem ser usados, quando e por quem. Essas descobertas incluem:

  • Conjuntos de habilidades relacionadas – Não é segredo que há uma escassez de profissionais de tecnologia qualificados, conforme confirmado por 47% dos entrevistados que relataram que têm dificuldade em encontrar os talentos de que precisam.
  • Iniciativas de compartilhamento de dados – Apenas 12% dos entrevistados têm processos e estratégias em vigor para relatar dados aos tomadores de decisões de negócios para conscientizá-los sobre os impactos comerciais da tecnologia resiliente (ou da falta dela).
  • O propósito da visibilidade – A maioria dos entrevistados usa telemetria de forma reativa (ou seja, para solução de problemas), enquanto apenas 24% dos entrevistados usam dados e insights de forma proativa para observar possíveis degradações de desempenho e 16% para rastrear o desempenho do SLA.

O restante desta postagem se concentra nos aspectos técnicos do insight. Fique de olho nos próximos blogs sobre estratégia, processo e outros tópicos.

Como o NGINX pode ajudar

Sabemos que a maioria das implantações do Kubernetes já usa uma ferramenta de monitoramento e não precisa de mais uma. Por isso, instrumentamos a API NGINX Plus para facilitar a exportação de métricas e fornecemos integrações com ferramentas populares como OpenTracing , Grafana e Prometheus , para que você possa ter uma visão completa do desempenho dentro dos seus clusters. Você obtém insights direcionados sobre o desempenho e a disponibilidade do aplicativo com rastros profundos para que possa entender como as solicitações são processadas em seus aplicativos de microsserviços.

  • Visão geral do tráfego de entrada e saída (norte-sul)
    O NGINX Ingress Controller fornece insights sobre o tráfego que entra e sai dos seus clusters Kubernetes.

    Você sabia que existem três controladores Ingress populares baseados no NGINX? Nem todos estão prontos para produção, e a escolha errada pode acabar complicando em vez de melhorar sua estratégia de microsserviços. Nossa postagem no blog Wait, Which NGINX Ingress Controller for Kubernetes Am I Using? fornece uma comparação das opções para que você possa tomar a melhor decisão para suas necessidades.

  • Visão geral do tráfego leste-oeste
    O NGINX Service Mesh fornece insights sobre o tráfego que flui entre aplicativos em contêineres.

Continue lendo para descobrir como podemos ajudar com dois problemas comuns:

Se você estiver pronto para ver a tecnologia em ação, confira esta demonstração de transmissão ao vivo e AMA com especialistas da NGINX e Grafana. Você os verá demonstrar como obter monitoramento ao vivo de métricas-chave de balanceamento de carga e desempenho, exportar as métricas para o Prometheus e criar painéis do Grafana para uma visão do desempenho cumulativo.

Problema: Meu aplicativo está lento (ou fora do ar!)

Você suspeita de um ataque DDoS? Os usuários estão relatando erros no seu site? Você não pode começar a resolver o problema até descobrir exatamente onde ele está.

  • Monitoramento ao vivo com o NGINX Ingress Controller
    Com o NGINX Plus, o painel de monitoramento de atividades ao vivo , alimentado pela API do NGINX Plus , exibe centenas de métricas importantes de carga e desempenho. Obtenha detalhes detalhados até o nível de um único pod para que você possa medir de forma rápida e fácil os tempos de resposta aos aplicativos e diagnosticar a origem de um problema. À medida que seu ambiente Kubernetes cresce, você obtém automaticamente painéis para cada instância adicional do NGINX Ingress Controller.

    Por exemplo, duas colunas na aba HTTP Upstreams fornecem uma leitura instantânea do status do aplicativo e da infraestrutura:

    • Solicitações – Se o número de solicitações por segundo ( Req/s ) estiver abaixo do normal para o aplicativo fornecido (por exemplo, 5 solicitações por segundo quando 40 é o normal), o Ingress Controller ou o aplicativo pode estar configurado incorretamente.
    • Tempo de resposta – Se o tempo de resposta for de 10 milissegundos (ms) ou menos, você está em ótima forma. Latência acima de 30–40 ms é um sinal de problemas com seus aplicativos upstream.

  • Status do stub para o controlador de entrada NGINX
    Com o NGINX Open Source, o NGINX Ingress Controller inclui uma página de status que relata oito métricas básicas.
  • OpenTracing com NGINX Service Mesh
    O NGINX Service Mesh oferece suporte ao OpenTracing com o módulo NGINX OpenTracing . No momento em que este artigo foi escrito, o módulo era compatível com Datadog, LightStep, Jaeger e Zipkin.

Problema: Meu cluster ou plataforma está ficando sem recursos

Tem erros de HTTP?503 e 40x erros indicam que há um problema com seus recursos, enquanto502 significa que uma alteração de configuração não funcionou. Use dados históricos para diagnosticar onde você pode estar ficando sem recursos.

  • Registro com o NGINX Ingress Controller
    O primeiro passo para diagnosticar problemas de rede é verificar os logs do NGINX Ingress Controller , nos quais cada entrada de log é anotada com o serviço Kubernetes relevante. Entradas sobre erros identificam o serviço associado. Os logs incluem informações detalhadas sobre todo o tráfego que passou pelo Ingress Controller, incluindo registro de data e hora, endereço IP de origem e código de status de resposta. Você também pode exportar logs para agregadores populares, como Datadog, Grafana e Splunk.
  • Métricas do Prometheus
    Um dos recursos mais populares do NGINX Ingress Controller é sua lista cada vez maior de métricas do Prometheus , que inclui métricas sobre desempenho de rede e tráfego do controlador Ingress. Com o NGINX Plus, o NGINX Ingress Controller exporta métricas sobre conexões, cache, tráfego HTTP e TCP/UDP manipulado por grupos de trabalhadores NGINX que compartilham dados em uma zona de memória , tráfego HTTP e TCP/UDP manipulado por grupos de servidores backend e muito mais.

    O NGINX Service Mesh implanta um servidor Prometheus que usa a API NGINX Plus para extrair métricas de sidecars do NGINX Service Mesh e pods do NGINX Ingress Controller. Se você preferir usar uma implantação existente do Prometheus, também fornecemos configurações de scrape para adicionar ao seu arquivo de configuração do Prometheus.

  • Painéis do Grafana
    Fornecemos painéis oficiais do Grafana para o NGINX Ingress Controller e o NGINX Service Mesh que visualizam métricas expostas pelo Prometheus Exporter. Os usuários valorizam a granularidade dos dados, que inclui detalhes de até milissegundos, sobreposições diárias e picos de tráfego. Por exemplo, o painel do NGINX Service Mesh pode indicar que seus pods estão com capacidade máxima, exibindo a quantidade de tráfego em qualquer serviço ou pod e o número de pods ativos sendo monitorados.

Preparando-se para produção com NGINX

O NGINX Ingress Controller pronto para produção (baseado no NGINX Plus) está disponível para um teste gratuito de 30 dias , que inclui o NGINX App Protect para proteger seus aplicativos em contêineres. O sempre gratuito NGINX Service Mesh está disponível para download em f5.com .


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."