Serviço NGINX Mesh disponível

Serviço NGINX Mesh disponível

Estamos felizes em apresentar a versão beta NGINX Service Mesh (NSM), uma service mesh leve que usa um data plane baseado em NGINX Plus para gerenciar o tráfego de contêineres em ambientes Kubernetes.

O NSM pode ser baixado aqui. Esperamos que você o utilize em ambientes de desenvolvimento e teste — e aguardamos seus feedbacks. no GitHub.

A implementação da metodologia de microserviços vem com desafios à medida que a escala de entrega cresce e se torna mais complexa. A comunicação entre serviços complica-se, os problemas de depuração tornam-se mais difíceis, e cada vez mais serviços exigem mais recursos para serem gerenciados.

O NSM resolve esses problemas, oferecendo a você, em primeiro lugar:

  • Segurança, que agora é mais importante do que nunca. Uma violação de dados pode custar milhões de dólares por ano em perdas de receita e reputação. O NSM garante a criptografia de todas as conexões com mTLS — assim, não há dados sensíveis que possam ser roubados por invasores na rede. O controle de acesso permite que você defina políticas sobre como os serviços se comunicarão uns com os outros.
  • Gerenciamento de tráfego. Ao implantar uma nova versão do aplicativo, você pode desejar, inicialmente, restringir o tráfego de entrada para evitar erros. Com o gerenciamento inteligente de tráfego de contêineres do NSM, você pode definir uma política de limitação de tráfego para novos serviços, que aumentará o tráfego ao longo do tempo. Outras funcionalidades, como limitação de velocidade e circuit breakers, oferecem a você controle total sobre o tráfego de todos os seus serviços.
  • Visualização. Gerenciar milhares de serviços pode ser um pesadelo em termos de depuração e visualização. O NSM ajuda a enfrentar essa situação com um painel de controle integrado do Grafana, onde todas as métricas disponíveis no NGINX Plus são exibidas. Além disso, o Open Tracing integrado permite que você acompanhe detalhadamente as transações.
  • Entregas Híbridas, se a sua empresa, como a maioria, não utiliza uma infraestrutura totalmente baseada em Kubernetes. O NSM garante que aplicações antigas não fiquem sem supervisão. Com o controlador de Ingress do NGINX Kubernetes integrado, serviços antigos poderão se conectar a serviços mesh e vice-versa.

O NSM também garante a segurança das aplicações em ambientes de confiança zero, aplicando de forma transparente a criptografia e a autenticação do tráfego de contêineres. Ele permite a observação e análise de transações, ajudando a implementar implantações rapidamente e com precisão, além de solucionar problemas. Além disso, proporciona controle detalhado do tráfego, permitindo que as equipes de DevOps implantem e otimizem partes das aplicações, ao mesmo tempo que oferece aos desenvolvedores a capacidade de criar e conectar facilmente suas aplicações distribuídas.

Como funciona o NGINX Service Mesh?

O NSM consiste em um data plane unificado para tráfego horizontal (serviço a serviço) e um NGINX Plus Ingress Controller incorporado para tráfego vertical, todos geridos por um control plane único.

O control plane é projetado e otimizado especificamente para o data plane do NGINX Plus, definindo regras de gerenciamento de tráfego distribuídas pelos sidecars do NGINX Plus.

No NSM, sidecars proxy são implantados para cada serviço na malha. Eles interagem com as seguintes soluções de código aberto:

  • Grafana, visualização de métricas do Prometheus, com um painel incorporado do NSM que ajuda você ao trabalhar;
  • Controladores de Ingress do Kubernetes, para gerenciar o tráfego de entrada e saída na malha;
  • SPIRE, CA para gerenciar, distribuir e atualizar certificados na malha;
  • NATS, um sistema de envio de mensagens escalável, por exemplo, para atualizações de rotas, do control plane para os sidecars;
  • Open Tracing, depuração distribuída (suporte a Zipkin e Jaeger);
  • Prometheus, coleta e armazenamento de métricas dos sidecars do NGINX Plus, como número de solicitações, conexões e SSL handshakes.

Funcionalidades e componentes

O NGINX Plus, como data plane, abrange proxies sidecar (tráfego horizontal) e o controlador Ingress (tráfego vertical), interceptando e gerenciando o tráfego de contêineres entre serviços.

As funcionalidades incluem:

  • Autenticação mútua TLS (mTLS);
  • Balanceamento de carga;
  • Alta disponibilidade;
  • Limitação de taxas;
  • Interrupção de circuito;
  • Implantações Blue-Green e Canary;
  • Controle de acesso.

Implantação do NGINX Service Mesh

Para implantar o NSM, é necessário:

  • acesso ao ambiente Kubernetes. O NGINX Service Mesh é suportado em várias plataformas Kubernetes, incluindo Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere e clusters Kubernetes padrão implantados em servidores 'bare metal';
  • A ferramenta kubectl, instalado na máquina a partir da qual o NSM será implantado;
  • Acesso aos pacotes de lançamentos do NGINX Service Mesh. O pacote contém imagens do NSM necessárias para upload em um registro privado para contêineres disponível no cluster Kubernetes. O pacote também inclui nginx-meshctl, necessário para a implantação do NSM.

Para implantar o NSM com configurações padrão, execute o seguinte comando. Durante a implantação, serão exibidas mensagens sobre a instalação bem-sucedida dos componentes e, finalmente, uma mensagem informando que o NSM está funcionando em um namespace separado (primeiro, é necessário baixar e colocá-lo no registro, Nota do tradutor):

$ DOCKER_REGISTRY=sua-registro-Docker ; MESH_VER=0.6.0 ; 
 .\/nginx-meshctl deploy  
  --nginx-mesh-api-image "${DOCKER_REGISTRY}\/nginx-mesh-api:${MESH_VER}" 
  --nginx-mesh-sidecar-image "${DOCKER_REGISTRY}\/nginx-mesh-sidecar:${MESH_VER}" 
  --nginx-mesh-init-image "${DOCKER_REGISTRY}\/nginx-mesh-init:${MESH_VER}" 
  --nginx-mesh-metrics-image "${DOCKER_REGISTRY}\/nginx-mesh-metrics:${MESH_VER}"
Namespace "nginx-mesh" criado.
SpiffeID CRD criado.
Aguardando os pods Spire estarem em execução...feito.
Spire implantado.
Servidor NATS implantado.
CRDs de políticas de tráfego criadas.
API Mesh implantada.
Servidor da API de Métricas implantado.
Servidor Prometheus nginx-mesh\/prometheus-server implantado.
Grafana nginx-mesh\/grafana implantada.
Servidor de rastreamento nginx-mesh\/zipkin implantado.
Todos os recursos criados. Testando a conexão com o Servidor da API do Service Mesh...

Conectado à API do NGINX Service Mesh com sucesso.
O NGINX Service Mesh está em execução.

Para obter parâmetros adicionais, incluindo configurações avançadas, execute este comando:

$ nginx-meshctl deploy –h

Para verificar se o plano de controle está funcionando corretamente no namespace nginx-mesh, você pode fazer assim:

$ kubectl get pods –n nginx-mesh
NOME                                 PRONTO   STATUS    REINÍCIOS   IDADE
grafana-6cc6958cd9-dccj6             1\/1     Em Execução   0          2d19h
mesh-api-6b95576c46-8npkb            1\/1     Em Execução   0          2d19h
nats-server-6d5c57f894-225qn         1\/1     Em Execução   0          2d19h
prometheus-server-65c95b788b-zkt95   1\/1     Em Execução   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1\/1     Em Execução   0          2d19h
spire-agent-5cf87                    1\/1     Em Execução   0          2d19h
spire-agent-rr2tt                    1\/1     Em Execução   0          2d19h
spire-agent-vwjbv                    1\/1     Em Execução   0          2d19h
spire-server-0                       2\/2     Em Execução   0          2d19h
zipkin-6f7cbf5467-ns6wc              1\/1     Em Execução   0          2d19h

Dependendo das configurações de implantação que definem políticas de injeção manual ou automática, os proxies NGINX sidecars serão adicionados a aplicativos por padrão. Para desativar a adição automática, leia aqui

Por exemplo, se implantarmos um aplicativo dormir no namespace padrão, e em seguida verificarmos o Pod — veremos dois contêineres em execução, o aplicativo dormir e o sidecar associado:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NOME                     PRONTO   STATUS    REINÍCIOS   IDADE
sleep-674f75ff4d-gxjf2   2\/2     Em Execução   0          5h23m

Também podemos monitorar o aplicativo dormir no painel NGINX Plus, execute este comando para acessar o sidecar a partir da sua máquina local:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

Em seguida, simplesmente acesse aqui no navegador. Você também pode se conectar ao Prometheus para monitorar o aplicativo dormir.

Você pode usar recursos separados do Kubernetes para configurar políticas de tráfego, como controle de acesso, limitação de velocidade e circuit breaking; para isso, consulte documentação

Conclusão

O NGINX Service Mesh está disponível para download gratuito no portal F5. Teste em seus ambientes de dev e test e nos envie seu feedback.

Para experimentar o NGINX Plus Ingress Controller, ative o período de teste gratuito por 30 dias, ou entre em contato conosco para discutir suas opções de uso.

Tradução de autoria de Pavel Demkovich, engenheiro da empresa Southbridge. Administração de sistemas por 15.000 ₽ por mês. E como uma divisão separada — centro de treinamento Slurm, prática e nada além de prática.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster