Malla de servicio NGINX disponible

Malla de servicio NGINX disponible

Nos complace presentar una versión preliminar. Malla de servicios NGINX (NSM), una malla de servicios liviana empaquetada que utiliza un plano de datos basado en NGINX Plus para administrar el tráfico de contenedores en entornos de Kubernetes.

NSM es gratis скачать здесь. Esperamos que lo pruebes en entornos de desarrollo y prueba y esperamos tus comentarios. en GitHub.

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 descargar y colocarlo en el registro, aprox. traductor):

$ 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 aquí

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 aquí en el navegador. También puedes conectarte a Prometheus para monitorear la aplicación. sueño.

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 documentación

Conclusión

NGINX Service Mesh está disponible para su descarga gratuita en portal F5. Pruébelo en sus entornos de desarrollo y prueba y escríbenos sobre los resultados.

Para probar el controlador de ingreso NGINX Plus, active periodo de prueba gratuito durante 30 días, o свяжитесь с нами para discutir sus casos de uso.

Traducción de Pavel Demkovich, ingeniero de la empresa Southbridge. Administración del sistema por 15 rublos al mes. Y como una división separada: un centro de formación. Slurm, práctica y nada más que práctica.

Fuente: habr.com

Añadir un comentario