A principios de este año , presentamos NGINX Management Suite como nuestro nuevo plano de control para las soluciones de software NGINX, lo que le permite configurar, escalar, proteger y monitorear las aplicações de usuario y las API REST en el plano de datos NGINX desde un solo panel.
NGINX Management Suite tiene un diseño modular: en su núcleo se encuentra el módulo Instance Manager , que proporciona seguimiento, configuración y visibilidad para toda su flota de instancias NGINX Open Source y NGINX Plus. Al momento de escribir este artículo, API Connectivity Manager es el otro módulo disponible, utilizado para administrar y orquestar el funcionamiento de NGINX Plus como puerta de enlace de API.
NGINX Management Suite puede ejecutarse en hardware real, como una máquina virtual Linux o en contenedores. La forma recomendada de implementarlo en Kubernetes es usando el diagrama de Helm que proporcionamos, pero para fines específicos es posible que necesite crear su propia imagen de Docker y administrar su ciclo de vida a través de una canalización CI/CD personalizada que no necesariamente dependa de Helm.
[ Editor : esta publicación se actualizó en febrero de 2023 para automatizar por completo el proceso de creación de la imagen de Docker].
Proporcionamos un repositorio de GitHub de los recursos que necesita para crear una imagen de Docker para NGINX Management Suite, con soporte para estas versiones de Instance Manager y API Connectivity Manager:
Para crear la imagen de Docker, necesitas:
Para ejecutar la imagen de Docker, necesitas:
kubectl
con acceso al clúster de KubernetesSiga estas instrucciones para crear la imagen de Docker.
Nota: Hemos hecho todo lo posible para representar con precisión la interfaz de usuario de NGINX Management Suite en el momento de la publicación, pero la interfaz de usuario está sujeta a cambios. Utilice estas instrucciones como referencia y adáptelas a la interfaz de usuario actual según sea necesario.
Clonar el repositorio de GitHub:
$ git clone https://github.com/nginxinc/NGINX-Demos Clonando en 'NGINX-Demos'... remoto: Enumeración de objetos: 215, listo. remoto: Contando objetos: 100% (215/215), hecho. remoto: Comprimiendo objetos: 100% (137/137), hecho. remoto: Total 215 (delta 108), reutilizados 171 (delta 64), paquete reutilizado 0 Objetos recibidos: 100% (215/215), 2,02 MiB | 1,04 MiB/s, listo.
Resolviendo deltas: 100% (108/108), listo.
Cambiar al directorio de compilación:
$ cd NGINX-Demos/nginx-nms-docker/
Ejecute docker
ps
para verificar que Docker se esté ejecutando y luego ejecute el script buildNIM.sh para compilar la imagen de Docker. La opción -i
establece el modo de compilación automatizado, -C
y -K
son opciones obligatorias que nombran el certificado y la clave de NGINX Management Suite respectivamente, y la opción -t
especifica 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 ==> Compilación de la imagen Docker de NGINX Management Suite Envío del contexto de compilación al demonio Docker 92,19 MB Paso 1/18: DESDE ubuntu:22.04 ---> a8780b506fa4 Paso 2/18 : ARG NIM_DEBFILE ---> Ejecutando en 0f2354280c34 Eliminando contenedor intermedio 0f2354280c34 [...] ---> 0588a050c852 Paso 18/18 : CMD /deployment/startNIM.sh ---> Ejecutando en d0cc5466a43d Eliminando contenedor intermedio d0cc5466a43d ---> 25117ec0410a Construido exitosamente 25117ec0410a Etiquetado exitosamente registry.ff.lan:31005/nginx-nms:2.5.1 El push hace referencia al repositorio [registry.ff.lan:31005/nginx-nms] 9c4918474e3a: Empujado 42543d044dbb: Empujado 1621b2ec0a5e: Se envió c6a464fc6a79: Empujado 75fa1d3c61bb: Empujado 3501fcf5dbd8: Empujado d4a221057e67: Empujado 9ad05eafed57: Empujado f4a670ac65b6: Se envió la versión 2.5.1: resumen: sha256:9a70cfdb63b71dc31ef39e4f20a1420d8202c85784cb037b45dc0e884dad74c9 tamaño: 2425
Siga estas instrucciones para preparar el manifiesto de implementación 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 al portapapeles:
$ base64 -w0 nginx-mgmt-suite.lic TulNRS1WZXJz...
Usando su editor favorito, abra manifests/1.nginx-nim.yaml y realice los siguientes cambios:
En la sección spec.template.spec.containers
, reemplace el nombre de la imagen predeterminada ( your.registry.tld/nginx-nim2:tag
) con el nombre de la imagen de Docker que especificó con la opción -t
en el Paso 3 de la sección anterior (en nuestro caso, registry.ff.lan:31005/nginx-nms:2.5.1 ):
especificación: ...
plantilla: ...
especificación:
contenedores:
- nombre: nginx-nim2
imagen: 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 campo de valor
para cada nombre
indicado:
NIM_USERNAME
– (Opcional) Reemplace el administrador
predeterminado con un nombre de cuenta de administrador.NIM_PASSWORD
– (Obligatorio) Reemplace el nimadmin
predeterminado con una contraseña segura.LICENCIA NIM
– (Obligatorio) Reemplazar el valor predeterminado <ARCHIVO DE LICENCIA CODIFICADO EN BASE64>
con la licencia codificada en base64 que generó en el Paso 1 anterior.especificación: ...
plantilla:
...
especificación:
contenedores:
...
entorno:
...
- nombre: NIM_USERNAME
valor: admin
- nombre: NIM_PASSWORD
valor: nimadmin
- nombre: LICENCIA NIM
valor: "<ARCHIVO DE LICENCIA CODIFICADO EN BASE64>"
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 seguimiento, se ejecuta como el pod nginx-nim2 . El script también inicializa pods para ClickHouse como base de datos de backend y Grafana para la visualización de análisis. Para obtener más información, consulte el archivo README en el repositorio de GitHub.
$ ./scripts/nimDockerStart.sh start namespace/nginx-nim2 created ~/NGINX-NIM2-Docker/manifests/certs ~/NGINX-NIM2-Docker Generando una clave privada RSA .....................................+++++ .....................................+++++ escribiendo una nueva clave privada en 'nim2.f5.ff.lan.key' ----- secret/nim2.f5.ff.lan created configmap/clickhouse-conf created configmap/clickhouse-users created persistentvolumeclaim/pvc-clickhouse createdployment.apps/clickhouse created service/clickhouse createdployment.apps/nginx-nim2 created service/nginx-nim2 created service/nginx-nim2-grpc created persistentvolumeclaim/pvc-grafana-data created persistentvolumeclaim/pvc-grafana-log createdployment.apps/grafana created service/grafana created virtualserver.k8s.nginx.org/nim2 creado virtualserver.k8s.nginx.org/grafana creado ~/NGINX-NIM2-Docker
Verifique que ahora se estén ejecutando tres pods:
$ kubectl get pods -n nginx-nim2 NOMBRE LISTO ESTADO REINICIO EDAD clickhouse-759b65db8c-74pn5 1/1 En ejecución 0 63 s grafana-95fbbf5c-jczgk 1/1 En ejecución 0 63 s nginx-nim2-5f54664754-lrhmn 1/1 En ejecución 0 63 s
Para acceder a NGINX Management Suite, navegue en un navegador a https://nim2.f5.ff.lan (o el nombre de host alternativo que configuró en el Paso 4 de la sección anterior). Inicie sesión utilizando las credenciales que configuró en el Paso 2 de la sección anterior.
Para detener y eliminar la instancia Docker de NGINX Management Suite, ejecute este comando:
$ ./scripts/nimDockerStart.sh espacio de nombres de parada "nginx-nim2" eliminado
Para probar las soluciones NGINX analizadas en esta publicación, comience hoy mismo una prueba gratuita de 30 días o contáctenos para analizar sus casos de uso:
"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.