Plus tôt cette année, nous avons lancé NGINX Management Suite en tant que nouveau plan de contrôle pour les solutions logicielles NGINX, vous permettant de configurer, faire évoluer, sécuriser et surveiller les applications utilisateur et les API REST sur le plan de données NGINX depuis une interface unique.
NGINX Management Suite repose sur une conception modulaire : son cœur est constitué du module Instance Manager, qui permet de suivre, de configurer et de superviser l’ensemble de votre parc d’instances NGINX Open Source et NGINX Plus. À l’heure où nous écrivons ces lignes, API Connectivity Manager est l’autre module disponible. Il permet de gérer et d’orchestrer NGINX Plus lorsqu’il est utilisé comme passerelle d’API.
NGINX Management Suite peut s’exécuter sur un serveur physique, sous forme de machine virtuelle Linux ou dans un conteneur. Pour le déployer sur Kubernetes, nous vous recommandons d’utiliser le chart Helm que nous fournissons. Toutefois, pour des besoins spécifiques, vous devrez peut-être créer votre propre image Docker et gérer son cycle de vie au moyen d’un pipeline CI/CD personnalisé qui ne repose pas nécessairement sur Helm.
[Éditeur – Cet article a été mis à jour en février 2023 afin d’automatiser entièrement le processus de création de l’image Docker.]
Prérequis
Nous mettons à votre disposition un dépôt GitHub contenant les ressources nécessaires pour créer une image Docker pour NGINX Management Suite, avec prise en charge des versions suivantes d’Instance Manager et d’API Connectivity Manager :
- Instance Manager 2.4.0+
- API Connectivity Manager 1.0.0+
- Surveillance de la sécurité 1.0.0+
Pour créer l’image Docker, vous avez besoin des éléments suivants :
- Un hôte Linux (machine physique ou virtuelle)
- Docker 20.10+
- Un registre privé vers lequel vous pouvez envoyer l’image Docker cible
- Un abonnement (ou un essai gratuit de 30 jours) à NGINX Management Suite
Pour exécuter l’image Docker, vous avez besoin des éléments suivants :
- Un cluster Kubernetes opérationnel
kubectlavec accès au cluster Kubernetes- Un abonnement (ou un essai gratuit de 30 jours) à NGINX Ingress Controller basé sur NGINX Plus
Création de l’image Docker
Suivez ces instructions pour créer l’image Docker.
Remarque : Nous avons tout mis en œuvre pour représenter fidèlement l’interface utilisateur de NGINX Management Suite au moment de la publication, mais celle-ci est susceptible d’évoluer. Utilisez ces instructions comme référence et adaptez-les si nécessaire à l’interface actuelle.
- Clonez le dépôt GitHub :
$ git clone https://github.com/nginxinc/NGINX-DemosCloning into 'NGINX-Demos'...
remote: Enumerating objects: 215, done.
remote: Counting objects: 100% (215/215), done.
remote: Compressing objects: 100% (137/137), done.
remote: Total 215 (delta 108), reused 171 (delta 64), pack-reused 0
Receiving objects: 100% (215/215), 2.02 MiB | 1.04 MiB/s, done.
Resolving deltas: 100% (108/108), done.- Accédez au répertoire de compilation :
$ cd NGINX-Demos/nginx-nms-docker/- Exécutez
dockerpspour vérifier que Docker est en cours d’exécution, puis exécutez le script buildNIM.sh afin de créer l’image Docker. L’option‑iactive le mode de création automatisée. Les options‑Cet‑Ksont obligatoires et indiquent respectivement le certificat et la clé de NGINX Management Suite. Enfin, l’option‑tindique l’emplacement et le nom du registre privé vers lequel l’image est envoyée.
$ ./scripts/buildNIM.sh -i -C nginx-repo.crt -K nginx-repo.key -t registry.ff.lan:31005/nginx-nms:2.5.1
==> Building NGINX Management Suite docker image
Sending build context to Docker daemon 92.19MB
Step 1/18 : FROM ubuntu:22.04
---> a8780b506fa4
Step 2/18 : ARG NIM_DEBFILE
---> Running in 0f2354280c34
Removing intermediate container 0f2354280c34
[...]
---> 0588a050c852
Step 18/18 : CMD /deployment/startNIM.sh
---> Running in d0cc5466a43d
Removing intermediate container d0cc5466a43d
---> 25117ec0410a
Successfully built 25117ec0410a
Successfully tagged registry.ff.lan:31005/nginx-nms:2.5.1
The push refers to repository [registry.ff.lan:31005/nginx-nms]
9c4918474e3a: Pushed
42543d044dbb: Pushed
1621b2ec0a5e: Pushed
c6a464fc6a79: Pushed
75fa1d3c61bb: Pushed
3501fcf5dbd8: Pushed
d4a221057e67: Pushed
9ad05eafed57: Pushed
f4a670ac65b6: Pushed
2.5.1: digest: sha256:9a70cfdb63b71dc31ef39e4f20a1420d8202c85784cb037b45dc0e884dad74c9 size: 2425Exécution de NGINX Management Suite sur Kubernetes
Suivez ces instructions pour préparer le manifeste de déploiement et démarrer NGINX Management Suite sur Kubernetes.
- Encodez en Base64 la licence NGINX Management Suite que vous avez téléchargée à l’étape 4 de la section précédente, puis copiez le résultat dans le presse-papiers :
$ base64 -w0 nginx-mgmt-suite.licTulNRS1WZXJz...- À l’aide de votre éditeur préféré, ouvrez le fichier manifests/1.nginx-nim.yaml et apportez les modifications suivantes :
- Dans la section
spec.template.spec.containers, remplacez le nom de l’image par défaut (your.registry.tld/nginx-nim2:tag) par le nom de l’image Docker que vous avez spécifié avec l’option‑tà l’étape 3 de la section précédente (dans notre cas, registry.ff.lan:31005/nginx-nms:2.5.1) :
- Dans la section
spec: ...
template:
...
spec:
containers:
- name: nginx-nim2
image: your.registry.tld/nginx-nim2:tag- Dans la section
spec.template.spec.containers.env, configurez les identifiants d’authentification en effectuant les substitutions suivantes dans le champvaluepour chaquenameindiqué :
spec: ...
template:
...
spec:
containers:
...
env:
...
- name: NIM_USERNAME
value: admin
- name: NIM_PASSWORD
value: nimadmin
- name: NIM_LICENSE
value: "<BASE64_ENCODED_LICENSE_FILE>"NIM_USERNAME– (Facultatif) Remplacez la valeur par défautadminpar le nom d’un compte administrateur.NIM_PASSWORD– (Obligatoire) Remplacez la valeur par défautnimadminpar un mot de passe robuste.NIM_LICENSE– (Obligatoire) Remplacez la valeur par défaut<BASE64_ENCODED_LICENSE_FILE>par la licence encodée en base64 que vous avez générée à l’étape 1 ci-dessus.
- Vérifiez et modifiez les fichiers sous manifests/certs afin de personnaliser le certificat et la clé TLS utilisés pour la terminaison TLS en définissant le nom de domaine complet (FQDN) que vous souhaitez utiliser. Par défaut, le script de démarrage nimDockerStart.sh publie NGINX Management Suite conteneurisé via NGINX Ingress Controller.
- Si nécessaire, modifiez manifests/3.vs.yaml et personnalisez les noms d’hôte utilisés pour accéder à NGINX Management Suite.
- Exécutez nimDockerStart.sh pour démarrer NGINX Management Suite dans votre cluster Kubernetes. Comme indiqué dans la trace, il s’exécute sous la forme du pod nginx-nim2. Le script initialise également des pods pour ClickHouse en tant que base de données principale et pour Grafana afin de visualiser les données analytiques. Pour plus d’informations, consultez le fichier README du dépôt GitHub.
$ ./scripts/nimDockerStart.sh start namespace/nginx-nim2 created
~/NGINX-NIM2-Docker/manifests/certs ~/NGINX-NIM2-Docker
Generating a RSA private key
.....................................+++++
.....................................+++++
writing new private key to 'nim2.f5.ff.lan.key'
-----
secret/nim2.f5.ff.lan created
configmap/clickhouse-conf created
configmap/clickhouse-users created
persistentvolumeclaim/pvc-clickhouse created
deployment.apps/clickhouse created
service/clickhouse created
deployment.apps/nginx-nim2 created
service/nginx-nim2 created
service/nginx-nim2-grpc created
persistentvolumeclaim/pvc-grafana-data created
persistentvolumeclaim/pvc-grafana-log created
deployment.apps/grafana created
service/grafana created
virtualserver.k8s.nginx.org/nim2 created
virtualserver.k8s.nginx.org/grafana created
~/NGINX-NIM2-Docker- Vérifiez que trois pods sont désormais en cours d’exécution :
$ kubectl get pods -n nginx-nim2 NAME READY STATUS RESTARTS AGE
clickhouse-759b65db8c-74pn5 1/1 Running 0 63s
grafana-95fbbf5c-jczgk 1/1 Running 0 63s
nginx-nim2-5f54664754-lrhmn 1/1 Running 0 63sAccéder à NGINX Management Suite
Pour accéder à NGINX Management Suite, ouvrez dans un navigateur l’adresse https://nim2.f5.ff.lan (ou l’autre nom d’hôte que vous avez défini à l’étape 4 de la section précédente). Connectez-vous à l’aide des identifiants que vous avez définis à l’étape 2 de la section précédente.
Arrêt de NGINX Management Suite
Pour arrêter et supprimer l’instance Docker de NGINX Management Suite, exécutez la commande suivante :
$ ./scripts/nimDockerStart.sh stop namespace "nginx-nim2" deletedCommencer
Pour essayer les solutions NGINX présentées dans cet article, commencez dès aujourd’hui un essai gratuit de 30 jours ou contactez-nous pour discuter de vos cas d’utilisation:
- Suite de gestion NGINX
- NGINX Ingress Controller basé sur NGINX Plus
À propos de l’auteur

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.