
Nous sommes heureux de présenter la version préliminaire (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 . Nous espĂ©rons que vous l'essayerez pour des environnements de dĂ©veloppement et de test â et nous attendons vos retours. .
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 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 âhVĂ©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 2j19hEn 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
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 5h23mNous 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:8886Ensuite, il suffit de se rendre 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
Conclusion
NGINX Service Mesh est disponible en téléchargement gratuit sur . Essayez-le dans vos environnements de développement et de test et .
Pour essayer le NGINX Plus Ingress Controller, activez de 30 jours, ou pour discuter de vos cas d'utilisation.
Traduction rĂ©alisĂ©e par Pavel Demkovich, ingĂ©nieur chez . Administration systĂšme pour 15 000 ✠par mois. Et en tant que division distincte â centre de formation , pratique et rien d'autre que de la pratique.
Source : habr.com
