Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
El administrador de trabajos puede operar en un entorno de sistema contenedor Docker , un entorno de sistema contenedor Podman o un entorno de sistema de orquestación contenedor Kubernetes . El administrador de trabajos detectará automáticamente su entorno para seleccionar el modo operativo apropiado.
Característica del gestor de trabajo sintético
Debido a que el administrador de trabajos de Sintético opera como un contenedor en lugar de una máquina virtual, hemos simplificado la instalación, la introducción y la actualización de la administración y orquestación de trabajos. También viene con algunas funciones adicionales:
Seguridad mejorada y soporte para la ejecución de usuarios no root .
Capacidad de aprovechar un contenedor Docker como entorno sandbox .
Característica específica de Kubernetes
El administrador de trabajos introduce algunas funciones adicionales específicas de Kubernetes:
Utiliza recursos de Kubernetes CronJob para ejecutar un monitor sin ping
No requiere acceso privilegiado al socket de la docker
Soporta clúster de Kubernetes alojado y on-premise
Admite varios motores de contenedores como Docker y Containerd
Implementable a través de gráficos Helm y YAML de configuración
Permite la asignación de recursos basada en el tiempo de ejecución del trabajo configurable (ping, API y browser) para una gestión óptima de los recursos.
Observabilidad ofrecida a través del explorador New Relic clúster de Kubernetes
requisito del sistema y compatibilidad
Para alojar administradores de trabajos de Sintético, su sistema debe cumplir con los requisitos mínimos para el entorno del sistema elegido.
Advertencia
No modifique ningún archivo del administrador de trabajos de Sintético. New Relic no es responsable de las modificaciones que realice. Para obtener más información, comuníquese con su representante de cuenta o con un representante técnico de ventas de New Relic.
Compatibilidad para
Requisitos
Sistema operativo
Linux kernel: 3.10 o superior macOS: 10.11 o superior Windows: Windows 10 de 64 bits o superior
También debe configurar docker para ejecutar el contenedor de Linux para que los administradores de trabajos de Sintético funcionen en sistemas Windows.
El administrador de trabajos Docker Sintéticos no está diseñado para usar con orquestadores de contenedores como AWS ECS, Docker Swarm, Apache Mesos, Azure contenedor instancia, etc. Ejecutar el administrador de trabajos Docker Sintéticos en un orquestador de contenedores genera problemas inesperados, ya que funciona como un orquestador en sí mismo. Si está empleando la orquestación de contenedor, consulte nuestros requisitos del administrador de trabajosKubernetes Sintéticos.
El administrador de trabajos Podman Sintéticos no está diseñado para usar con orquestadores de contenedores como AWS ECS, Docker Swarm, Apache Mesos, Azure contenedor instancia, etc. Ejecutar el administrador de trabajos Docker Sintéticos en un orquestador de contenedores genera problemas inesperados, ya que funciona como un orquestador en sí mismo. Si está empleando la orquestación de contenedor, consulte nuestros requisitos del administrador de trabajosKubernetes Sintéticos.
Compatibilidad para
Requisitos
Sistema operativo
Linux kernel: 3.10 o superior macOS: 10.11 o superior
El contenedor de Linux, incluido el administrador de trabajos, solo se ejecuta en nodos Linux K8.
Procesador
Una CPU moderna y multinúcleo
Podde gestión de trabajos Sintético
CPU (vCPU/Core): 0,5 hasta 0,75 Memory: 800Mi hasta 1600Mi
Los recursos asignados a un pod de administrador de trabajos de Sintético son configurables por el usuario.
Podde tiempo de ejecución de ping
CPU (vCPU/Core): 0,5 hasta 0,75 Memory: 500Mi hasta 1Gi
Consideraciones adicionales:
Los recursos asignados a un pod de tiempo de ejecución de ping son configurables por el usuario.
La relación máxima de recursos de solicitud de límite tanto para la CPU como para la memoria es 2.
Podde tiempo de ejecución de API de Node.js
CPU (vCPU/Core): 0,5 hasta 0,75 Memory: 1250Mi hasta 2500Mi
Consideraciones adicionales:
Los recursos asignados a un pod de tiempo de ejecución de API de Node.js son configurables por el usuario.
La relación máxima de recursos de solicitud de límite tanto para la CPU como para la memoria es 2.
Runtime de ejecución Node.js browser pod
CPU (vCPU/Core): 1,0 hasta 1,5 Memory: 2000Mi hasta 3000Mi
Consideraciones adicionales:
Los recursos asignados a un pod de tiempo de ejecución browser Node.js son configurables por el usuario.
La relación máxima de recursos de solicitud de límite tanto para la CPU como para la memoria es 2.
Para ver las versiones, dependencias, valores predeterminados de cuántos pods de tiempo de ejecución se inician con cada administrador de trabajos de Sintético y más, consulte Mostrar ayuda y ejemplos a continuación.
Clave de ubicación privada
Antes de lanzar los gestores de trabajos de Sintético, debes tener una clave de ubicación privada. Su administrador de trabajos de Sintético usa la clave para autenticarse en New Relic y ejecutar el monitor asociado con esa ubicación privada.
Para encontrar la clave de una ubicación privada existente:
En el índice Private locations , localice la ubicación privada a la que desea que se asigne su administrador de trabajos de Sintético.
Tenga en cuenta la clave asociada a la ubicación privada con la clave icono.
Instalar, actualizar y configurar el administrador de trabajos Sintético
Si está ejecutando más de un contenedor de ubicación privada Docker o Podman en el mismo host, tendrá conflictos de puertos. Para evitar esta contención de puertos, cerciorar de hacer lo siguiente cuando comience a configurar administradores de trabajos:
Ejecute administradores de trabajos y llamadas por minuto en diferentes hosts.
Ejecute cada administrador de trabajos en un host independiente.
Ejecute cada llamada por minuto en un host diferente.
A menos que esté alojando las imágenes en un repositorio de imágenes local, debe permitir conexiones a docker.io a través de su firewall para que Docker o Podman puedan extraer el trabajo del administrador de imágenes sintéticas y el tiempo de ejecución de las imágenes sintéticas. Cuando se inicia el administrador de trabajos de Sintéticos, las imágenes en tiempo de ejecución se extraen automáticamente. Consulte Configuración del entornoDocker , Configuración del entorno Podman y Configuración del entornoKubernetes para obtener detalles sobre cómo configurar un repositorio local y el extremo del registro del corredor.
Cerciorar de habilitar la dependenciaDocker para el sandbox y de instalar el administrador de trabajos Sintéticos en su sistema.
Ejecute el script apropiado para su sistema. Adapte el valor predeterminado común /var/run/docker.sock en los siguientes ejemplos para que coincida con su sistema.
Compruebe si el pod del administrador de trabajos de Sintético está en funcionamiento:
bash
$
kubectl get -n YOUR_NAMESPACE pods
Una vez que el atributo status de cada pod se muestra como running, su administrador de trabajos de Sintético estará activo y listo para ejecutar el monitor asignado a su ubicación privada.
Detener o eliminar el administrador de trabajos de Sintético
En un entorno de sistema contenedor Docker o Podman, emplee el procedimiento stop respectivo para detener el administrador de trabajos Sintéticos. En un entorno de sistema de orquestación de contenedores Kubernetes , emplee el procedimiento Kubernetes delete para detener la ejecución del administrador de trabajos sintéticos.
Elimina el namespace configurado para el administrador de trabajos de Sintético en tu clúster de Kubernetes:
bash
$
kubectl delete namespace YOUR_NAMESPACE
Sandboxing y dependencia
El sandboxing y la dependencia son aplicables al gestor de trabajos Sintéticos en un entorno de sistema contenedor Docker o Podman.
El administrador de trabajos de Sintético se ejecuta en docker y puede aprovechar docker como tecnología de espacio aislado. Esto garantiza un aislamiento completo de la ejecución del monitor, lo que mejora la seguridad, la confiabilidad y la repetibilidad. Cada vez que se ejecuta un monitor browser o script, el administrador de trabajos de Sintético crea un nuevo contenedor docker para ejecutarlo utilizando el tiempo de ejecución correspondiente.
El contenedor del administrador de trabajos Sintético debe configurarse para comunicarse con el motor docker a fin de generar contenedores de tiempo de ejecución adicionales. Luego, cada contenedor generado se dedica a ejecutar una verificación asociada con el monitor Sintético que se ejecuta en la ubicación privada a la que está asociado el contenedor del administrador de trabajos Sintético.
Existe una dependencia crucial en el lanzamiento. Para habilitar el espacio aislado, asegúrese de que:
El recuento de núcleos en el host determina cuántos contenedores de tiempo de ejecución puede ejecutar el administrador de trabajos Sintético simultáneamente en el host. Dado que los requisitos de memoria se ajustan al recuento esperado del contenedor de tiempo de ejecución, recomendamos not running multiple synthetics job managers on the same host para evitar la contención de recursos.
El administrador de trabajos Sintéticos se ejecuta en Podman y puede aprovechar Podman como una tecnología de sandbox. Esto garantiza un aislamiento completo de la ejecución del monitor, lo que mejora la seguridad, la confiabilidad y la repetibilidad. Cada vez que se ejecuta un monitor browser o script, el administrador de trabajos de Sintéticos crea un nuevo contenedor Podman para ejecutarlo empleando el entorno de ejecución correspondiente.
El administrador de trabajos Sintéticos contenedor debe configurar para comunicar con el motor Podman a fin de generar tiempo de ejecución adicional contenedor. Luego, cada contenedor generado se dedica a ejecutar una verificación asociada con el monitor Sintético que se ejecuta en la ubicación privada con la que está asociado el contenedor del administrador de trabajos Sintéticos.
Existe una dependencia crucial en el lanzamiento. Para habilitar el sandboxing, cerciorar de tener:
Crea un servicio API de Podman y configura Podman para proporcionar acceso a la API HTTP.
mkdir -p ~/.config/systemd/user
touch ~/.config/systemd/user/podman-api.service
vi ~/.config/systemd/user/podman-api.service
Define el servicio para exponer la API de Podman en el puerto 8000.
[Unit]
Description=Podman API Service
After=default.target
[Service]
Type=simple
ExecStart=/usr/bin/podman system service -t 0 tcp:0.0.0.0:8000
Restart=on-failure
[Install]
WantedBy=default.target
Habilitado e iniciado el servicio API de Podman.
systemctl --user daemon-reload
systemctl --user enable podman-api.service
systemctl --user start podman-api.service
systemctl --user status podman-api.service
Advertencia
El recuento de núcleos en el host determina cuántos contenedores de tiempo de ejecución puede ejecutar el administrador de trabajos Sintético simultáneamente en el host. Dado que los requisitos de memoria se ajustan al recuento esperado del contenedor de tiempo de ejecución, recomendamos not running multiple synthetics job managers on the same host para evitar la contención de recursos.
Seguridad, espacio aislado y ejecución como no root
De forma predeterminada, el software que se ejecuta dentro de un administrador de trabajos de Sintético se ejecuta con root privilegios de usuario. Esto es adecuado para la mayoría de los escenarios, ya que la ejecución está protegida.
Para ejecutar el administrador de trabajos de Sintético como usuario no root, se requieren pasos adicionales:
Si su entorno requiere que ejecute el administrador de trabajos de Sintético como usuario no root, siga este procedimiento. En el siguiente ejemplo, el usuario no root es my_user.
Asegúrese de que my_user pueda utilizar el motor Docker en el host:
Verifique que my_user tenga permisos de lectura/escritura en todos los directorios y volúmenes pasados al administrador de trabajos de Sintético. Para establecer estos permisos, utilice el comando chmod .
Obtenga el uid de my_user para usarlo en el comando de ejecución: id -u my_user.
Una vez que se cumplan estas condiciones, utilice la opción "-u <uid>:<gid>" al iniciar el administrador de trabajos de Sintético:
bash
$
docker run ... -u1002...
O
bash
$
docker run ... -u1002-eDOCKER_HOST=http://localhost:2375 ...
Comprenda sus entornos Docker, Podman o Kubernetes
A continuación se muestra información adicional sobre cómo mantener y comprender el entorno de contenedor del administrador de trabajos. Vea información de licencia, comprenda la configuración de red del administrador de trabajos y consulte el repositorio de imágenes docker .
Para un administrador de trabajos de Sintético en el entorno del sistema de orquestación de contenedores de Kubernetes, se pueden usar los siguientes comandos de Helm show para ver chart.yaml y values.yaml, respectivamente:
bash
$
helm show chart YOUR_REPO_NAME/synthetics-job-manager
bash
$
helm show values YOUR_REPO_NAME/synthetics-job-manager
Parte de nuestro software de código abierto aparece bajo varias licencias de software y, en ese caso, hemos enumerado la licencia que hemos elegido utilizar. La información de nuestra licencia también está disponible en la documentación de nuestras licencias.
Tanto para docker como para Kubernetes, el administrador de trabajos de Sintético y su contenedor de tiempo de ejecución heredarán la configuración de red del host. Para ver un ejemplo de esto en un entorno de sistema de contenedor docker , consulte el sitiodocker .
Se crea una red puente para la comunicación entre el administrador de trabajos de Sintético y el contenedor de tiempo de ejecución. Esto significa que las opciones de comando de red como --network y --dns que se pasan al contenedor del administrador de trabajos de Sintético en el momento del lanzamiento (como a través de comandos de ejecución docker en un entorno de sistema de contenedor docker ) no son heredadas ni utilizadas por los contenedores de tiempo de ejecución.
Cuando se crean estas redes, se extraen del grupo de direcciones IP predeterminado configurado para daemon. Para ver un ejemplo de esto en un entorno de sistema de contenedor Docker, consulte el sitio Docker .
En el caso de Podman, no empleamos una red de puente para la comunicación entre el administrador de trabajos Sintéticos y el contenedor en tiempo de ejecución, en su lugar usamos un pod Podman. Todos los contenedores en un pod Podman comparten el mismo namespace de red. Esto significa que comparten la misma dirección IP dentro de ese pod. En este caso aunque los contenedores comparten la misma IP, sus servicios están expuestos en puertos diferentes.
Una única imagen Docker del administrador de trabajos Sintéticos sirve al entorno del sistema de orquestación Docker, Podman y Kubernetes contenedor. La imagen de Docker está alojada en Docker Hub. Para cerciorar de que su imagen Docker esté actualizada, consulte el repositorio newrelic/synthetics-job-managerDocker Hub.
Consideraciones adicionales para la conexión del administrador de trabajos de Sintético
Conexión
Descripción
Gestores de empleo Sintético sin acceso a Internet
Un gestor de trabajos de Sintético puede operar sin acceso a Internet, pero con algunas excepciones. El gestor de trabajos de Sintético debe poder contactar con el dominio "synthetics-horde.nr-data.net" . Esto es necesario para que informe datos a New Relic y reciba un monitor para ejecutar. Pregunte a su administrador de red si esto representa un problema y cómo configurar excepciones.
Comunicarse con Sintético a través de un proxy
Para configurar la comunicación con New Relic mediante proxy, utilice las variables de entorno denominadas HORDE_API_PROXY*.
Argumentos aprobados en el lanzamiento
Esto se aplica únicamente al entorno contenedor Docker y Podman. Los argumentos que se pasan al administrador de trabajos Sintéticos contenedor en el lanzamiento no se pasan al contenedor en tiempo de ejecución generado por el administrador de trabajos Sintéticos. Docker y Podman no tienen el concepto de "herencia" o "jerarquía" de contenedor, y no copiamos la configuración que se pasa del administrador de trabajos sintéticos al contenedor en tiempo de ejecución. Sin embargo, en el caso de Podman, los argumentos que se pasan a nivel pod se comparten entre el administrador de trabajos de Sintéticos y el contenedor en tiempo de ejecución dentro del pod. La única configuración compartida entre ellos es la establecido en el nivel del demonio Docker .