Nos complace presentar una versión preliminar.
NSM es gratis
La implementación de la metodología de microservicios está plagada de dificultades a medida que crece la escala de entrega, así como su complejidad. La comunicación entre servicios se vuelve más compleja, los problemas de depuración se vuelven más difíciles y cada vez más servicios requieren más recursos para administrar.
NSM resuelve estos problemas proporcionándole:
- seguridad, que ahora es más importante que nunca. Una filtración de datos puede costarle a una empresa millones de dólares al año en pérdida de ingresos y reputación. NSM garantiza que todas las conexiones estén cifradas mediante mTLS, por lo que no hay datos confidenciales que los piratas informáticos puedan robar a través de la red. El control de acceso le permite establecer políticas sobre cómo los servicios se comunican con otros servicios.
- la gestión del tráfico. Al enviar una nueva versión de una aplicación, es posible que desee comenzar restringiendo el tráfico entrante en caso de error. Con la gestión inteligente del tráfico de contenedores de NSM, puede establecer una política de restricción de tráfico para nuevos servicios que aumentará el tráfico con el tiempo. Otras funciones, como la limitación de velocidad y los disyuntores, le brindan control total sobre el flujo de tráfico de todos sus servicios.
- Visualización. Administrar miles de servicios puede ser una pesadilla de depuración y visualización. NSM ayuda a afrontar esta situación con un panel de Grafana integrado que muestra todas las funciones disponibles en NGINX Plus. Y además el Open Tracing implementado le permite monitorear las transacciones en detalle.
- Entregas híbridas, si su empresa, como la mayoría de las demás, no utiliza una infraestructura que se ejecute completamente en Kubernetes. NSM garantiza que las aplicaciones heredadas no queden desatendidas. Con la ayuda del controlador de ingreso NGINX Kubernetes implementado, los servicios heredados podrán comunicarse con los servicios de malla y viceversa.
NSM también garantiza la seguridad de las aplicaciones en entornos de confianza cero al aplicar de forma transparente cifrado y autenticación al tráfico de contenedores. También proporciona visibilidad y análisis de transacciones, lo que le ayuda a iniciar implementaciones y solucionar problemas de forma rápida y precisa. También proporciona control de tráfico granular, lo que permite a los equipos de DevOps implementar y optimizar partes de las aplicaciones y, al mismo tiempo, permite a los desarrolladores crear y conectar fácilmente sus aplicaciones distribuidas.
¿Cómo funciona NGINX Service Mesh?
NSM consta de un plano de datos unificado para el tráfico horizontal (servicio a servicio) y un controlador de ingreso NGINX Plus integrado para el tráfico vertical, gestionado por un único plano de control.
El plano de control está diseñado y optimizado específicamente para el plano de datos de NGINX Plus y define las reglas de control de tráfico distribuidas entre los sidecars de NGINX Plus.
En NSM, se instalan servidores proxy sidecars para cada servicio en la malla. Interactúan con las siguientes soluciones de código abierto:
- Grafana, visualización de parámetros de Prometheus, panel NSM integrado le ayuda con su trabajo;
- Controladores de ingreso de Kubernetes, para gestionar el tráfico entrante y saliente en la malla;
- SPIRE, CA para la gestión, distribución y actualización de certificados en la malla;
- NATS, un sistema escalable para enviar mensajes, como actualizaciones de rutas, desde el avión de control a los sidecars;
- Open Tracing, depuración distribuida (compatible con Zipkin y Jaeger);
- Prometheus recopila y almacena características de los sidecars NGINX Plus, como la cantidad de solicitudes, conexiones y apretones de manos SSL.
Funciones y componentes
NGINX Plus como plano de datos cubre el proxy sidecar (tráfico horizontal) y el controlador de ingreso (vertical), interceptando y gestionando el tráfico de contenedores entre servicios.
Las características incluyen:
- Autenticación mutua TLS (mTLS);
- Balanceo de carga;
- Tolerancia a fallos;
- límite de velocidad;
- Rotura de circuito;
- Despliegues azul-verde y canario;
- Control de acceso.
Lanzamiento de NGINX Service Mesh
Para ejecutar NSM necesita:
- acceso al entorno de Kubernetes. NGINX Service Mesh es compatible con muchas plataformas de Kubernetes, incluido Amazon Elastic Container Service para Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere y clústeres de Kubernetes regulares implementados en servidores de hardware;
- Herramienta
kubectl
, instalado en la máquina desde la que se instalará NSM; - Acceso a los paquetes de lanzamiento de NGINX Service Mesh. El paquete contiene imágenes de NSM necesarias para cargarlas en un registro privado para contenedores disponibles en el clúster de Kubernetes. El paquete también contiene
nginx-meshctl
, necesario para implementar NSM.
Para implementar NSM con la configuración predeterminada, ejecute el siguiente comando. Durante la implementación, se muestran mensajes que indican la instalación exitosa de los componentes y, finalmente, un mensaje que indica que NSM se está ejecutando en un espacio de nombres separado (primero debe
$ 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 obtener más opciones, incluida la configuración avanzada, ejecute este comando:
$ nginx-meshctl deploy –h
Comprobar que el plano de control funciona correctamente en el espacio de nombres malla nginx, Puedes hacerlo:
$ 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
Dependiendo de la configuración de implementación que establece políticas de inyección manual o automática, los servidores proxy NGINX se agregarán a las aplicaciones de forma predeterminada. Para desactivar la adición automática, lea
Por ejemplo, si implementamos la aplicación sueño en el espacio de nombres tu préstamo estudiantily luego verifique el Pod; veremos dos contenedores en ejecución, la aplicación sueño y el 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
También podemos monitorear la aplicación. sueño en el panel de NGINX Plus, ejecute este comando para acceder al sidecar desde su máquina local:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Entonces simplemente entramos
Puede utilizar recursos individuales de Kubernetes para configurar políticas de tráfico, como control de acceso, limitación de velocidad y interrupción de circuitos; para esto, consulte
Conclusión
NGINX Service Mesh está disponible para su descarga gratuita en
Para probar el controlador de ingreso NGINX Plus, active
Traducción de Pavel Demkovich, ingeniero de la empresa
Fuente: habr.com