NGINX Service Mesh est disponible

NGINX Service Mesh est disponible

Nous sommes heureux de présenter la version préliminaire NGINX Service Mesh (NSM), une service mesh légÚre liée, utilisant un data plane basé sur NGINX Plus pour gérer le trafic des conteneurs dans des environnements Kubernetes.

NSM est disponible gratuitement le tĂ©lĂ©charger ici. Nous espĂ©rons que vous l'essayerez pour des environnements de dĂ©veloppement et de test — et nous attendons vos retours. sur GitHub.

La mise en Ɠuvre d'une mĂ©thodologie de microservices s'accompagne de difficultĂ©s Ă  mesure que l'Ă©chelle des livraisons augmente et se complexifie. La communication entre les services devient plus compliquĂ©e, les problĂšmes de dĂ©bogage deviennent plus difficiles, et de plus en plus de services demandent plus de ressources Ă  gĂ©rer.

NSM résout ces problÚmes en vous offrant principalement :

  • SĂ©curitĂ©, qui est dĂ©sormais plus important que jamais. Une fuite de donnĂ©es peut coĂ»ter des millions de dollars par an Ă  une entreprise en pertes de revenus et en rĂ©putation. NSM assure le chiffrement de toutes les connexions grĂące Ă  mTLS — de sorte qu'il n'y a tout simplement pas de donnĂ©es sensibles que les pirates peuvent voler sur le rĂ©seau. Le contrĂŽle d'accĂšs vous permet de dĂ©finir des politiques sur la façon dont les services communiqueront entre eux.
  • Gestion du trafic. Lorsque vous dĂ©ployez une nouvelle version de votre application, vous souhaiterez peut-ĂȘtre commencer par limiter le trafic entrant afin d'Ă©viter des erreurs. GrĂące Ă  la gestion intelligente du trafic des conteneurs de NSM, vous pouvez dĂ©finir une politique de limitation du trafic pour les nouveaux services, qui augmentera le trafic au fil du temps. D'autres fonctionnalitĂ©s, comme la limitation de dĂ©bit et les disjoncteurs, vous donnent un contrĂŽle total de la gestion du trafic pour tous vos services.
  • Visualisation. GĂ©rer des milliers de services peut ĂȘtre un cauchemar en matiĂšre de dĂ©bogage et de visualisation. NSM aide Ă  faire face Ă  cette situation avec un tableau de bord intĂ©grĂ© Grafana, affichant toutes les mĂ©triques disponibles dans NGINX Plus. De plus, l'Open Tracing intĂ©grĂ© permet un suivi dĂ©taillĂ© des transactions.
  • Livraisons hybrides, si votre entreprise, comme la plupart, n'utilise pas une infrastructure entiĂšrement dĂ©ployĂ©e sur Kubernetes. NSM garantit que les anciennes applications ne seront pas laissĂ©es pour compte. GrĂące au NGINX Kubernetes Ingress Controller intĂ©grĂ©, les anciens services pourront communiquer avec les services mesh, et vice versa.

NSM assure également la sécurité des applications dans des environnements à confiance nulle, en appliquant de maniÚre transparente le chiffrement et l'authentification du trafic des conteneurs. Il permet aussi la surveillance et l'analyse des transactions, facilitant le déploiement rapide et précis et la résolution des problÚmes. De plus, un contrÎle détaillé du trafic est assuré, permettant aux équipes DevOps de déployer et d'optimiser des parties des applications, tout en permettant aux développeurs de créer et de connecter facilement leurs applications distribuées.

Comment fonctionne le NGINX Service Mesh ?

Le NSM se compose d'un plan de données unifié pour le trafic horizontal (service à service) et d'un NGINX Plus Ingress Controller intégré pour le trafic vertical, gérés par un plan de contrÎle unique.

Le plan de contrÎle est spécialement conçu et optimisé pour le plan de données NGINX Plus, définissant les rÚgles de gestion du trafic, dispersées à travers les sidecars NGINX Plus.

Dans le NSM, des proxies sidecars sont installés pour chaque service dans le mesh. Ils interagissent avec les solutions open source suivantes :

  • Grafana, la visualisation des mĂ©triques Prometheus, intĂ©grĂ©e dans le tableau de bord NSM pour vous aider dans votre travail ;
  • Kubernetes Ingress Controllers, pour gĂ©rer le trafic entrant et sortant dans le mesh ;
  • SPIRE, CA pour la gestion, la distribution et la mise Ă  jour des certificats dans le mesh ;
  • NATS, un systĂšme de messagerie Ă©volutif pour les mises Ă  jour de route, du plan de contrĂŽle aux sidecars ;
  • Open Tracing, dĂ©bogage distribuĂ© (prend en charge Zipkin et Jaeger) ;
  • Prometheus, collecte et stockage des mĂ©triques des sidecars NGINX Plus, comme le nombre de requĂȘtes, de connexions et de SSL handshakes.

Fonctions et composants

NGINX Plus en tant que plan de données couvre les proxy sidecar (trafic horizontal) et le contrÎleur Ingress (trafic vertical), interceptant et gérant le trafic des conteneurs entre les services.

Les fonctionnalités incluent :

  • Authentification mutuelle TLS (mTLS) ;
  • RĂ©partition de charge ;
  • RĂ©silience ;
  • Limitation de dĂ©bit ;
  • Coupure de circuit ;
  • DĂ©ploiements bleu-vert et canari ;
  • ContrĂŽle d'accĂšs.

Lancer NGINX Service Mesh

Pour lancer le NSM, il faut :

  • un accĂšs Ă  l'environnement Kubernetes. NGINX Service Mesh est pris en charge sur de nombreuses plateformes Kubernetes, y compris Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere et des clusters Kubernetes standard dĂ©ployĂ©s sur des serveurs physiques ;
  • Outil kubectl, installĂ© sur la machine depuis laquelle le NSM sera installĂ© ;
  • AccĂšs aux paquets de versions de NGINX Service Mesh. Le paquet contient des images NSM nĂ©cessaires pour le dĂ©ploiement dans un registre privĂ© pour conteneurs, accessible dans le cluster Kubernetes. Le paquet comprend Ă©galement nginx-meshctl, nĂ©cessaires pour dĂ©ployer le NSM.

Pour déployer le NSM avec des configurations par défaut, exécutez la commande suivante. Pendant le déploiement, des messages indiquant la réussite de l'installation des composants seront affichés, et enfin, un message indiquant que le NSM fonctionne dans un espace de noms distinct (vous devez d'abord télécharger et le placer dans le registre, note du traducteur):

$ 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}"
Espace de noms "nginx-mesh" créé.
CRD SpiffeID créée.
Attente du fonctionnement des pods Spire... terminé.
Déploiement de Spire.
Déploiement du serveur NATS.
CRDs de politique de trafic créées.
Déploiement de Mesh API.
Déploiement de Metrics API Server.
Déploiement du serveurn de Prometheus nginx-mesh\/prometheus-server.
Déploiement de Grafana nginx-mesh\/grafana.
Déploiement du serveur de traçage nginx-mesh\/zipkin.
Tous les ressources créées. Test de la connexion à l'API Server de Service Mesh...

Connecté à l'API de NGINX Service Mesh avec succÚs.
NGINX Service Mesh est en fonctionnement.

Pour obtenir des options supplémentaires, y compris des paramÚtres avancés, exécutez cette commande :

$ nginx-meshctl deploy –h

Vérifiez que le plan de contrÎle fonctionne correctement dans l'espace de noms nginx-mesh, de cette maniÚre :

$ kubectl get pods –n nginx-mesh
NOM                                 PRÊT   ÉTAT    RE-DÉMARRAGES   ÂGE
grafana-6cc6958cd9-dccj6             1/1     En cours d'exécution   0          2j19h
mesh-api-6b95576c46-8npkb            1/1     En cours d'exécution   0          2j19h
nats-server-6d5c57f894-225qn         1/1     En cours d'exécution   0          2j19h
prometheus-server-65c95b788b-zkt95   1/1     En cours d'exécution   0          2j19h
smi-métriques-5986dfb8d5-q6gfj       1/1     En cours d'exécution   0          2j19h
spire-agent-5cf87                    1/1     En cours d'exécution   0          2j19h
spire-agent-rr2tt                    1/1     En cours d'exécution   0          2j19h
spire-agent-vwjbv                    1/1     En cours d'exécution   0          2j19h
spire-server-0                       2/2     En cours d'exécution   0          2j19h
zipkin-6f7cbf5467-ns6wc              1/1     En cours d'exécution   0          2j19h

En fonction des paramÚtres de déploiement qui paramÚtrent les politiques d'injection manuelle ou automatique, les proxies NGINX sidecars seront ajoutés aux applications par défaut. Pour désactiver l'ajout automatique, lisez ici

Par exemple, si nous dĂ©ployons l'application sleep dans l'espace de noms default, puis vĂ©rifions le Pod — nous verrons deux conteneurs en cours d'exĂ©cution, l'application sleep et son sidecar associĂ© :

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NOM                     PRÊT   ÉTAT    RE-DÉMARRAGES   ÂGE
sleep-674f75ff4d-gxjf2   2/2     En cours d'exécution   0          5h23m

Nous pouvons également surveiller l'application sleep dans le panneau NGINX Plus, en exécutant cette commande pour accéder au sidecar depuis votre machine locale :

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

Ensuite, il suffit de se rendre ici dans le navigateur. Vous pouvez également vous connecter à Prometheus pour surveiller l'application sleep.

Vous pouvez utiliser des ressources Kubernetes distinctes pour configurer des politiques de trafic, comme le contrĂŽle d'accĂšs, la limitation de la bande passante et le circuit breaking, pour cela consultez documentation

Conclusion

NGINX Service Mesh est disponible en téléchargement gratuit sur le portail F5. Essayez-le dans vos environnements de développement et de test et contez-nous vos résultats.

Pour essayer le NGINX Plus Ingress Controller, activez la période d'essai gratuite de 30 jours, ou contactez-nous pour discuter de vos cas d'utilisation.

Traduction rĂ©alisĂ©e par Pavel Demkovich, ingĂ©nieur chez Southbridge. Administration systĂšme pour 15 000 ₜ par mois. Et en tant que division distincte — centre de formation Slurm, pratique et rien d'autre que de la pratique.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster