NGINX Service Mesh dispoñible

NGINX Service Mesh dispoñible

Temos o pracer de presentar unha versión previa Malla de servizo NGINX (NSM), unha malla de servizo lixeira agrupada que usa un plano de datos baseado en NGINX Plus para xestionar o tráfico de contedores en ambientes Kubernetes.

NSM é gratuíto descarga aquí. Agardamos que o probes en ambientes de desenvolvemento e probas e agardamos os teus comentarios en github.

A implementación da metodoloxía de microservizos está chea de dificultades a medida que crece a escala de entrega, así como a súa complexidade. A comunicación entre servizos faise máis complexa, os problemas de depuración fanse máis difíciles e cada vez son máis os servizos que requiren máis recursos para xestionalos.

NSM resolve estes problemas proporcionándoche:

  • Безопасность, que agora é máis importante que nunca. Unha violación de datos pode custar a unha empresa millóns de dólares ao ano en perda de ingresos e reputación. NSM garante que todas as conexións estean cifradas mediante mTLS, polo que non hai datos confidenciais que poidan ser roubados por hackers a través da rede. O control de acceso permítelle establecer políticas sobre como se comunican os servizos con outros servizos.
  • xestión do tráfico. Ao enviar unha nova versión dunha aplicación, pode querer comezar restrinxindo o tráfico entrante en caso de erro. Coa xestión intelixente de tráfico de contedores de NSM, pode establecer unha política de restrición de tráfico para novos servizos que aumentarán o tráfico co paso do tempo. Outras funcións, como a limitación de velocidade e os interruptores automáticos, ofrécenche un control total sobre o fluxo de tráfico de todos os teus servizos.
  • Visualización. Xestionar miles de servizos pode ser un pesadelo de depuración e visualización. NSM axuda a xestionar esta situación cun panel de control de Grafana integrado que mostra todas as funcións dispoñibles en NGINX Plus. E tamén o Open Tracing implementado permítelle supervisar as transaccións en detalle.
  • Entregas híbridas, se a túa empresa, como a maioría das demais, non utiliza infraestrutura que se executa enteiramente en Kubernetes. NSM garante que as aplicacións legadas non queden desatendidas. Coa axuda do controlador de entrada NGINX Kubernetes implementado, os servizos legados poderán comunicarse cos servizos de malla e viceversa.

NSM tamén garante a seguridade das aplicacións en contornos de confianza cero aplicando de forma transparente o cifrado e a autenticación ao tráfico de contedores. Tamén ofrece visibilidade e análise de transaccións, axudándoche a lanzar implantacións e solucionar problemas de forma rápida e precisa. Tamén ofrece un control granular do tráfico, o que permite aos equipos de DevOps despregar e optimizar partes das aplicacións ao tempo que permite aos desenvolvedores crear e conectar facilmente as súas aplicacións distribuídas.

Como funciona NGINX Service Mesh?

NSM consta dun plano de datos unificado para o tráfico horizontal (de servizo a servizo) e dun controlador de entrada NGINX Plus integrado para o tráfico vertical, xestionado por un único plano de control.

O plano de control está deseñado e optimizado especificamente para o plano de datos NGINX Plus e define regras de control de tráfico distribuídas nos sidecars NGINX Plus.

En NSM, instálanse proxies sidecars para cada servizo da malla. Interfacen coas seguintes solucións de código aberto:

  • Grafana, visualización de parámetros de Prometheus, panel NSM integrado axúdache co teu traballo;
  • Kubernetes Ingress Controllers, para xestionar o tráfico entrante e saínte na malla;
  • SPIRE, CA para a xestión, distribución e actualización de certificados na malla;
  • NATS, un sistema escalable para enviar mensaxes, como actualizacións de rutas, desde o avión de control ata os sidecars;
  • Open Tracing, depuración distribuída (compatible con Zipkin e Jaeger);
  • Prometheus, recolle e almacena as características dos sidecars de NGINX Plus, como o número de solicitudes, conexións e conexións SSL.

Funcións e compoñentes

NGINX Plus como plano de datos abrangue o proxy sidecar (tráfico horizontal) e o controlador de entrada (vertical), interceptando e xestionando o tráfico de contedores entre servizos.

As características inclúen:

  • Autenticación TLS mutua (mTLS);
  • Equilibrio de carga;
  • tolerancia a fallos;
  • Límite de velocidade;
  • Corte de circuíto;
  • Despregamentos azul-verde e canario;
  • Control de acceso.

Lanzamento de NGINX Service Mesh

Para executar NSM necesitas:

  • acceso ao entorno Kubernetes. NGINX Service Mesh é compatible con moitas plataformas Kubernetes, incluíndo Amazon Elastic Container Service para Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere e clústeres Kubernetes habituais despregados en servidores de hardware;
  • Ferramenta kubectl, instalado na máquina desde a que se instalará NSM;
  • Acceso aos paquetes de lanzamento de NGINX Service Mesh. O paquete contén imaxes NSM necesarias para cargalas nun rexistro privado para contedores dispoñibles no clúster de Kubernetes. O paquete tamén contén nginx-meshctl, necesario para implantar NSM.

Para implementar NSM coa configuración predeterminada, execute o seguinte comando. Durante a implantación, móstranse mensaxes que indican a instalación exitosa dos compoñentes e, finalmente, unha mensaxe que indica que NSM se está a executar nun espazo de nomes separado (primeiro é necesario descargar e colocalo no rexistro, aprox. 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 obter máis opcións, incluída a configuración avanzada, execute este comando:

$ nginx-meshctl deploy –h

Comproba que o plano de control funciona correctamente no espazo de nomes nginx-mesh, podes facer isto:

$ 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 da configuración de implementación que establece políticas de inxección manual ou automática, os proxies sidecars de NGINX engadiranse ás aplicacións de forma predeterminada. Para desactivar a adición automática, le aquí

Por exemplo, se despregamos a aplicación durmir no espazo de nomes defecto, e despois verifique o Pod - veremos dous contedores en execución, a aplicación durmir e o sidecar asociado:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Tamén podemos supervisar a aplicación durmir no panel NGINX Plus, executa este comando para acceder ao sidecar desde a túa máquina local:

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

Despois só entramos aquí no navegador. Tamén pode conectarse a Prometheus para supervisar a aplicación durmir.

Podes usar recursos individuais de Kubernetes para configurar políticas de tráfico, como control de acceso, limitación de velocidade e corte de circuítos, para iso consulte documentación

Conclusión

NGINX Service Mesh está dispoñible para descarga gratuíta en portal F5. Probao nos teus ambientes de desenvolvemento e proba e escríbenos sobre os resultados.

Para probar NGINX Plus Ingress Controller, activa período de proba gratuíto durante 30 días, ou Contacta connosco para discutir os seus casos de uso.

Tradución de Pavel Demkovich, enxeñeiro da empresa Southbridge. Administración do sistema por 15 RUB ao mes. E como unha división separada - un centro de formación Slurm, práctica e nada máis que práctica.

Fonte: www.habr.com

Engadir un comentario