Plus tôt cette année, nous avons présenté NGINX Management Suite comme notre nouveau plan de contrôle pour les solutions logicielles NGINX, vous permettant de configurer, de faire évoluer, de sécuriser et de surveiller les applications utilisateur et les API REST sur le plan de données NGINX à partir d'un seul panneau de verre.
NGINX Management Suite a une conception modulaire : à la base se trouve le module Instance Manager , qui fournit le suivi, la configuration et la visibilité de l'ensemble de votre flotte d'instances NGINX Open Source et NGINX Plus. Au moment de la rédaction de cet article, API Connectivity Manager est l’autre module disponible, utilisé pour gérer et orchestrer NGINX Plus exécuté en tant que passerelle API.
NGINX Management Suite peut fonctionner sur du bare metal, en tant que machine virtuelle Linux ou conteneurisée. La méthode recommandée pour le déployer sur Kubernetes consiste à utiliser le graphique Helm que nous fournissons, mais à des fins spécifiques, vous devrez peut-être créer votre propre image Docker et gérer son cycle de vie via un pipeline CI/CD personnalisé qui ne repose pas nécessairement sur Helm.
[ Éditeur – Cet article a été mis à jour en février 2023 pour automatiser entièrement le processus de création de l’image Docker.]
Nous fournissons un référentiel GitHub des ressources dont vous avez besoin pour créer une image Docker pour NGINX Management Suite, avec prise en charge de ces versions d'Instance Manager et d'API Connectivity Manager :
Pour créer l’image Docker, vous avez besoin de :
Pour exécuter l’image Docker, vous avez besoin de :
kubectl
avec accès au cluster KubernetesSuivez ces instructions pour créer l’image Docker.
Note: Nous avons fait tous les efforts possibles pour représenter avec précision l'interface utilisateur de NGINX Management Suite au moment de la publication, mais l'interface utilisateur est susceptible d'être modifiée. Utilisez ces instructions comme référence et adaptez-les à l’interface utilisateur actuelle si nécessaire.
Cloner le dépôt GitHub :
$ git clone https://github.com/nginxinc/NGINX-Demos Clonage dans 'NGINX-Demos'... à distance : Énumération des objets : 215, terminé. à distance : Compter les objets : 100% (215/215), terminé. à distance : Compression d'objets : 100% (137/137), terminé. à distance : Total 215 (delta 108), réutilisé 171 (delta 64), pack-réutilisé 0 Objets de réception : 100 % (215/215), 2,02 Mio | 1,04 Mio/s, terminé.
Résolution des deltas : 100% (108/108), fait.
Accédez au répertoire de construction :
$ cd NGINX-Demos/nginx-nms-docker/
Exécutez docker
ps
pour vérifier que Docker est en cours d’exécution, puis exécutez le script buildNIM.sh pour créer l’image Docker. L'option ‑i
définit le mode de construction automatisé, ‑C
et ‑K
sont des options obligatoires qui nomment respectivement le certificat et la clé NGINX Management Suite, et l'option ‑t
spécifie l'emplacement et le nom du registre privé vers lequel l'image est poussée.
$ ./scripts/buildNIM.sh -i -C nginx-repo.crt -K nginx-repo.key -t registry.ff.lan:31005/nginx-nms:2.5.1 ==> Création de l'image docker de NGINX Management Suite Envoi du contexte de construction au démon Docker 92,19 Mo Étape 1/18 : DE ubuntu:22.04 ---> a8780b506fa4 Étape 2/18 : ARG NIM_DEBFILE ---> Exécution dans 0f2354280c34 Suppression du conteneur intermédiaire 0f2354280c34 [...] ---> 0588a050c852 Étape 18/18 : CMD /deployment/startNIM.sh ---> Exécution dans d0cc5466a43d Suppression du conteneur intermédiaire d0cc5466a43d ---> 25117ec0410a Création réussie 25117ec0410a Balisage réussi Registry.ff.lan:31005/nginx-nms:2.5.1 Le push fait référence au référentiel [registry.ff.lan:31005/nginx-nms] 9c4918474e3a : Poussé 42543d044dbb : Poussé 1621b2ec0a5e : Poussé c6a464fc6a79 : Poussé 75fa1d3c61bb : Poussé 3501fcf5dbd8 : Poussé d4a221057e67 : Poussé 9ad05eafed57 : Poussé f4a670ac65b6 : Publié 2.5.1 : digest : sha256 : 9a70cfdb63b71dc31ef39e4f20a1420d8202c85784cb037b45dc0e884dad74c9 taille : 2425
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 et copiez le résultat dans le presse-papiers :
$ base64 -w0 nginx-mgmt-suite.lic TulNRS1WZXJz...
À l’aide de votre éditeur préféré, ouvrez manifests/1.nginx-nim.yaml et effectuez 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 ) :
spec : ...
modèle :
...
spec :
conteneurs :
- nom : nginx-nim2
image : your.registry.tld/nginx-nim2:tag
Dans la section spec.template.spec.containers.env
, configurez les informations d'identification d'authentification en effectuant ces substitutions dans le champ de valeur
pour chaque nom
indiqué :
NIM_USERNAME
– (Facultatif) Remplacez l’ administrateur
par défaut par un nom de compte administrateur.NIM_PASSWORD
– (Obligatoire) Remplacez le nimadmin
par défaut par un mot de passe fort.LICENCE_NIM
– (Obligatoire) Remplacez la valeur par défaut <FICHIER_DE_LICENCE_ENCODÉ_BASE64>
avec la licence codée en base64 que vous avez générée à l’étape 1 ci-dessus.spec: ...
template:
...
spec:
containers:
...
env:
...
- name: NIM_USERNAME
valeur : admin
- nom : NIM_PASSWORD
valeur : nimadmin
- nom : NIM_LICENSE
valeur : « <FICHIER_DE_LICENCE_ENCODE_BASE64> »
Vous pouvez également modifier manifests/3.vs.yaml et personnaliser les noms d’hôtes 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 en tant que pod nginx-nim2 . Le script initialise également les pods pour ClickHouse comme base de données backend et Grafana pour la visualisation des analyses. Pour plus d'informations, consultez le fichier README sur le dépôt GitHub.
$ ./scripts/nimDockerStart.sh start namespace/nginx-nim2 created ~/NGINX-NIM2-Docker/manifests/certs ~/NGINX-NIM2-Docker Génération d'une clé privée RSA .....................................+++++ .....................................+++++ écriture d'une nouvelle clé privée dans '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 créé virtualserver.k8s.nginx.org/grafana créé ~/NGINX-NIM2-Docker
Vérifiez que trois pods sont désormais en cours d’exécution :
$ kubectl get pods -n nginx-nim2 NOM PRÊT ÉTAT RESTARTS ÂGE clickhouse-759b65db8c-74pn5 1/1 En cours d'exécution 0 63 s grafana-95fbbf5c-jczgk 1/1 En cours d'exécution 0 63 s nginx-nim2-5f54664754-lrhmn 1/1 En cours d'exécution 0 63 s
Pour accéder à NGINX Management Suite, accédez dans un navigateur à https://nim2.f5.ff.lan (ou au nom d’hôte alternatif que vous avez défini à l’étape 4 de la section précédente). Connectez-vous à l’aide des informations d’identification que vous avez définies à l’étape 2 de la section précédente.
Pour arrêter et supprimer l’instance Docker de NGINX Management Suite, exécutez cette commande :
$ ./scripts/nimDockerStart.sh stop l'espace de noms « nginx-nim2 » supprimé
Pour tester les solutions NGINX présentées dans cet article, démarrez dès aujourd'hui un essai gratuit de 30 jours ou contactez-nous pour discuter de vos cas d'utilisation :
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."