A principios de este año, presentamos NGINX Management Suite como nuestro nuevo plano de control para las soluciones de software de NGINX, que permite configurar, escalar, proteger y supervisar aplicaciones de usuario y API REST en el plano de datos de NGINX desde una única interfaz.
NGINX Management Suite tiene un diseño modular: en su núcleo se encuentra el módulo Instance Manager, que permite supervisar, configurar y obtener visibilidad de toda su flota de instancias de NGINX Open Source y NGINX Plus. En el momento de redactar este artículo, API Connectivity Manager es el otro módulo disponible, que se utiliza para gestionar y orquestar NGINX Plus cuando funciona como puerta de enlace de API.
NGINX Management Suite puede ejecutarse directamente en un servidor físico, como una máquina virtual Linux o en un contenedor. La forma recomendada de implementarlo en Kubernetes es mediante el chart de Helm que proporcionamos, pero para fines específicos puede que necesite crear su propia imagen de Docker y gestionar su ciclo de vida mediante una canalización de CI/CD personalizada que no dependa necesariamente de Helm.
[Editor – Esta entrada se actualizó en febrero de 2023 para automatizar por completo el proceso de creación de la imagen de Docker.]
Requisitos previos
Proporcionamos un repositorio de GitHub con los recursos necesarios para crear una imagen de Docker para NGINX Management Suite, compatible con estas versiones de Instance Manager y API Connectivity Manager:
- Instance Manager 2.4.0+
- API Connectivity Manager 1.0.0+
- Supervisión de seguridad 1.0.0+
Para crear la imagen de Docker, necesitas:
- Un host Linux (servidor físico o máquina virtual)
- Docker 20.10+
- Un registro privado al que pueda enviar la imagen de Docker de destino
- Una suscripción (o una prueba gratuita de 30 días) a NGINX Management Suite
Para ejecutar la imagen de Docker, necesitas:
- Un clúster de Kubernetes en ejecución
kubectlcon acceso al clúster de Kubernetes- Una suscripción (o una prueba gratuita de 30 días) para NGINX Ingress Controller basado en NGINX Plus
Creación de la imagen de Docker
Sigue estas instrucciones para crear la imagen de Docker.
Nota: Hemos hecho todo lo posible por representar fielmente la interfaz de usuario de NGINX Management Suite en el momento de la publicación, pero esta puede cambiar. Utilice estas instrucciones como referencia y adáptelas a la interfaz actual según sea necesario.
- Clone el repositorio de 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.- Cambia al directorio de compilación:
$ cd NGINX-Demos/nginx-nms-docker/- Ejecute
dockerpspara comprobar que Docker se está ejecutando y, a continuación, ejecute el script buildNIM.sh para crear la imagen de Docker. La opción‑iestablece el modo de compilación automatizada;‑Cy‑Kson opciones obligatorias que indican, respectivamente, el certificado y la clave de NGINX Management Suite; y la opción‑tespecifica la ubicación y el nombre del registro privado al que se envía la imagen.
$ ./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: 2425Ejecución de NGINX Management Suite en Kubernetes
Siga estas instrucciones para preparar el manifiesto de Deployment e iniciar NGINX Management Suite en Kubernetes.
- Codifique en Base64 la licencia de NGINX Management Suite que descargó en el paso 4 de la sección anterior y copie el resultado en el portapapeles:
$ base64 -w0 nginx-mgmt-suite.licTulNRS1WZXJz...- Con su editor preferido, abra manifests/1.nginx-nim.yaml y realice los siguientes cambios:
- En la sección
spec.template.spec.containers, sustituya el nombre de imagen predeterminado (your.registry.tld/nginx-nim2:tag) por el nombre de la imagen de Docker que especificó con la opción‑ten el paso 3 de la sección anterior (en nuestro caso, registry.ff.lan:31005/nginx-nms:2.5.1):
- En la sección
spec: ...
template:
...
spec:
containers:
- name: nginx-nim2
image: your.registry.tld/nginx-nim2:tag- En la sección
spec.template.spec.containers.env, configure las credenciales de autenticación realizando estas sustituciones en el campovaluepara cadanameindicado:
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– (Opcional) Sustituya el valor predeterminadoadminpor el nombre de una cuenta de administrador.NIM_PASSWORD– (Obligatorio) Sustituya el valor predeterminadonimadminpor una contraseña segura.NIM_LICENSE– (Obligatorio) Sustituya el valor predeterminado<BASE64_ENCODED_LICENSE_FILE>por la licencia codificada en base64 que generó en el paso 1 anterior.
- Compruebe y modifique los archivos de manifests/certs para personalizar el certificado y la clave TLS utilizados para la descarga de TLS; para ello, establezca el FQDN que desee utilizar. De forma predeterminada, el script de inicio nimDockerStart.sh publica NGINX Management Suite en contenedores mediante NGINX Ingress Controller.
- Opcionalmente, edite manifests/3.vs.yaml y personalice los nombres de host utilizados para acceder a NGINX Management Suite.
- Ejecute nimDockerStart.sh para iniciar NGINX Management Suite en su clúster de Kubernetes. Como se indica en el registro, se ejecuta como el pod nginx-nim2. El script también inicializa pods para ClickHouse como base de datos de backend y Grafana para visualizar los análisis. Para obtener más información, consulte el archivo README del repositorio de 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- Comprueba que ahora se estén ejecutando tres pods:
$ 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 63sAcceso a NGINX Management Suite
Para acceder a NGINX Management Suite, vaya en un navegador a https://nim2.f5.ff.lan (o al nombre de host alternativo que configuró en el paso 4 de la sección anterior). Inicie sesión con las credenciales que configuró en el paso 2 de la sección anterior.
Detener NGINX Management Suite
Para detener y eliminar la instancia de Docker de NGINX Management Suite, ejecute este comando:
$ ./scripts/nimDockerStart.sh stop namespace "nginx-nim2" deletedPrimeros pasos
Para probar las soluciones de NGINX descritas en este artículo, inicie hoy mismo una prueba gratuita de 30 días o póngase en contacto con nosotros para hablar sobre sus casos de uso:
- Suite de gestión de NGINX
- NGINX Ingress Controller basado en NGINX Plus
Sobre el autor

Artículos relacionados del blog
Únete a F5 NGINX en AppWorld 2024
Descubre las numerosas razones para asistir al evento insignia de F5, que incluirá un emocionante anuncio sobre la cartera de productos NGINX.
Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source
La función de diccionario compartido permite configurar NGINX sin necesidad de reiniciarlo al renovar los certificados SSL/TLS.
Exposición de APIs en Kubernetes
La unidad 2 de Microservices March 2022 se centra en cómo exponer tus API en Kubernetes. Aquí tienes enlaces a los recursos que necesitas: la retransmisión en directo del 14 de marzo, artículos de blog y otros recursos de preparación, y el laboratorio práctico «Protege las API de Kubernetes mediante la limitación de solicitudes».
NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto
Hoy, en NGINX Sprint 2.0, anunciamos cómo respaldaremos nuestra visión del futuro de las aplicaciones modernas con una mayor presencia en la comunidad de código abierto, incluida la participación en el proyecto comunitario Kubernetes, nuevos proyectos de software de código abierto y la arquitectura de referencia para aplicaciones modernas.
Presentamos NGINX Plus R22
NGINX Plus R22 incorpora nuevas funcionalidades, como la compatibilidad con OCSP para verificar la revocación de certificados en TLS mutuo, el uso de varios proveedores de identidad OIDC en una configuración, el seguimiento en tiempo real de la limitación de solicitudes y conexiones en el panel de NGINX Plus y mejoras en NGINX JavaScript.
Presentamos NGINX Plus R17
NGINX Plus R17 incorpora compatibilidad con la limitación de velocidad en dos fases y con TLS 1.3, la versión más reciente del protocolo Transport Layer Security. La configuración de OpenID Connect es más sencilla y NGINX ModSecurity WAF es el doble de rápido que antes. También se ha actualizado el módulo JavaScript de NGINX.