NGINX Service Mesh disponível

NGINX Service Mesh disponível

Temos o prazer de apresentar uma versão prévia Malha de serviço NGINX (NSM), uma malha de serviço leve e integrada que usa um plano de dados baseado em NGINX Plus para gerenciar o tráfego de contêineres em ambientes Kubernetes.

NSM é gratuito baixe aqui. Esperamos que você experimente em ambientes de desenvolvimento e teste - e aguardamos seu feedback no GitHub.

A implementação da metodologia de microsserviços está repleta de dificuldades à medida que a escala de entrega cresce, bem como a sua complexidade. A comunicação entre serviços torna-se mais complexa, a depuração de problemas torna-se mais difícil e cada vez mais serviços requerem mais recursos para serem gerenciados.

O NSM resolve esses problemas fornecendo a você:

  • segurança, que agora é mais importante do que nunca. Uma violação de dados pode custar a uma empresa milhões de dólares anualmente em perda de receita e reputação. O NSM garante que todas as conexões sejam criptografadas usando mTLS, para que não haja dados confidenciais que possam ser roubados por hackers na rede. O controle de acesso permite definir políticas sobre como os serviços se comunicam com outros serviços.
  • Gestão de tráfego. Ao enviar uma nova versão de um aplicativo, você pode começar restringindo o tráfego de entrada para ele em caso de erro. Com o gerenciamento inteligente de tráfego de contêineres do NSM, você pode definir uma política de restrição de tráfego para novos serviços que aumentarão o tráfego ao longo do tempo. Outros recursos, como limite de velocidade e disjuntores, oferecem controle total sobre o fluxo de tráfego de todos os seus serviços.
  • Visualização. Gerenciar milhares de serviços pode ser um pesadelo de depuração e visualização. O NSM ajuda a lidar com essa situação com um painel Grafana integrado que exibe todos os recursos disponíveis no NGINX Plus. E também o Open Tracing implementado permite monitorar as transações detalhadamente.
  • Entregas híbridas, se sua empresa, como a maioria das outras, não usa infraestrutura executada inteiramente em Kubernetes. O NSM garante que os aplicativos legados não sejam deixados de lado. Com a ajuda do controlador de entrada NGINX Kubernetes implementado, os serviços legados serão capazes de se comunicar com serviços mesh e vice-versa.

O NSM também garante a segurança dos aplicativos em ambientes de confiança zero, aplicando criptografia e autenticação de forma transparente ao tráfego de contêineres. Ele também fornece visibilidade e análise de transações, ajudando você a iniciar implantações e solucionar problemas com rapidez e precisão. Ele também fornece controle de tráfego granular, permitindo que as equipes de DevOps implantem e otimizem partes de aplicativos, ao mesmo tempo que permite que os desenvolvedores criem e conectem facilmente seus aplicativos distribuídos.

Como funciona o NGINX Service Mesh?

O NSM consiste em um plano de dados unificado para tráfego horizontal (serviço a serviço) e um controlador de entrada NGINX Plus integrado para tráfego vertical, gerenciado por um único plano de controle.

O plano de controle é projetado e otimizado especificamente para o plano de dados NGINX Plus e define regras de controle de tráfego distribuídas entre sidecars NGINX Plus.

No NSM, proxies sidecars são instalados para cada serviço na malha. Eles fazem interface com as seguintes soluções de código aberto:

  • Grafana, visualização de parâmetros do Prometheus, painel NSM integrado ajuda você em seu trabalho;
  • Controladores de ingresso Kubernetes, para gerenciamento de tráfego de entrada e saída na malha;
  • SPIRE, CA para gerenciamento, distribuição e atualização de certificados na malha;
  • NATS, um sistema escalável para envio de mensagens, como atualizações de rotas, do plano de controle para sidecars;
  • Open Tracing, depuração distribuída (com suporte para Zipkin e Jaeger);
  • O Prometheus coleta e armazena características dos sidecars NGINX Plus, como número de solicitações, conexões e handshakes SSL.

Funções e componentes

O NGINX Plus como plano de dados cobre o proxy sidecar (tráfego horizontal) e o controlador Ingress (vertical), interceptando e gerenciando o tráfego de contêineres entre serviços.

Características incluem:

  • Autenticação TLS mútua (mTLS);
  • Balanceamento de carga;
  • Tolerância ao erro;
  • Limite de velocidade;
  • Interrupção de circuito;
  • Implantações azul-verde e canário;
  • Controle de acesso.

Lançamento da malha de serviço NGINX

Para executar o NSM você precisa:

  • acesso ao ambiente Kubernetes. O NGINX Service Mesh é compatível com muitas plataformas Kubernetes, incluindo Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere e clusters Kubernetes regulares implantados em servidores de hardware;
  • Ferramenta kubectl, instalado na máquina na qual o NSM será instalado;
  • Acesso aos pacotes de lançamento do NGINX Service Mesh. O pacote contém imagens NSM necessárias para upload em um registro privado para contêineres disponíveis no cluster Kubernetes. O pacote também contém nginx-meshctl, necessário para implantar o NSM.

Para implantar o NSM com configurações padrão, execute o comando a seguir. Durante a implantação, são exibidas mensagens indicando o sucesso da instalação dos componentes e, por fim, uma mensagem indicando que o NSM está sendo executado em um namespace separado (você precisa primeiro baixar e coloque-o no registro, Aproximadamente. tradutor):

$ DOCKER_REGISTRY=your-Docker-registry ; 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}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

Para mais opções, incluindo configurações avançadas, execute este comando:

$ nginx-meshctl deploy –h

Verifique se o plano de controle funciona corretamente no namespace malha nginx, você pode gostar disso:

$ kubectl get pods –n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

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

Por exemplo, se implantarmos o aplicativo dormir no espaço para nome omissãoe, em seguida, verifique 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
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Também podemos monitorar o aplicativo dormir no painel NGINX Plus, executando este comando para acessar o sidecar de sua máquina local:

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

Então nós apenas entramos aqui no navegador. Você também pode se conectar ao Prometheus para monitorar o aplicativo dormir.

Você pode usar recursos individuais do Kubernetes para configurar políticas de tráfego, como controle de acesso, limitação de taxa e interrupção de circuito. Para isso, consulte documentação

Conclusão

NGINX Service Mesh está disponível para download gratuito em portal F5. Experimente em seus ambientes de desenvolvimento e teste e escreva-nos sobre os resultados.

Para experimentar o NGINX Plus Ingress Controller, ative período de teste gratuito por 30 dias, ou Contate-Nos para discutir seus casos de uso.

Tradução de Pavel Demkovich, engenheiro da empresa Southbridge. Administração do sistema por RUB 15 por mês. E como uma divisão separada - um centro de treinamento Slurm, pratique e nada além de praticar.

Fonte: habr.com

Adicionar um comentário