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.
Instalar minion privado en contenedores (llamadas por minuto)
Importante
A partir del 26 de agosto de 2024, ya no podrás crear un nuevo monitor usando tiempos de ejecución legacy en ubicaciones públicas o privadas.
El 22 de octubre de 2024, dejaremos de funcionar el minion privado en contenedor (llamadas por minuto) y las versiones legacy de tiempo de ejecución sintética que admite. Revise nuestros pasos de migración recomendados para evitar la degradación de su monitor de ubicación privada.
Las llamadas por minuto pueden operar en un entorno de sistema de contenedor Docker o en un entorno de sistema de orquestación de contenedor Kubernetes. Las llamadas por minuto detectarán automáticamente su entorno para seleccionar el modo de funcionamiento adecuado.
General minion privado característica
Debido a que llamadas por minuto opera como un contenedor en lugar de una máquina virtual, ofrece muchas características:
Seguridad mejorada y soporte para la ejecución de usuarios no root
Capacidad de aprovechar un contenedor Docker como entorno de pruebas
Tiempo de espera de verificación del monitor personalizable
Módulos personalizados proporcionados para tipos monitor con secuencias de comandos
Característica específica de Kubernetes
Además, las llamadas por minuto ofrecen la siguiente característica en un entorno Kubernetes:
Se integra con la API de Kubernetes para delegar la gestión del ciclo de vida del tiempo de ejecución a Kubernetes
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 trabajos (comprobación de ping o sin ping) 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 llamadas por minuto, su sistema debe cumplir con los requisitos mínimos para el entorno del sistema elegido.
Advertencia
No modifique ningún archivo de llamadas por minuto. 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.
Medido mediante el monitoreo del rendimiento de escritura para https://newrelic.com en una instancia AWS EC2 m5.xlarge con: AL2, clase de almacenamiento gp2, volumen raíz de 50 GiB, una instalación predeterminada de Docker llamadas por minuto y 1 monitor a la vez configurado en Frecuencia de 1 minuto. Se esperan mejoras en la eficiencia con la ejecución de varios monitores. Estos valores pueden ser mayores o menores que los suyos dependiendo de muchos factores.
La línea de base para llamadas Docker por minuto es de 0,5 IOPS sin trabajos de monitor en ejecución.
La docker llamadas por minuto no es compatible con docker Engine 26.0 o superior debido a cambios importantes. Los clientes que buscan soporte docker 26+ deben migrar a Sintético Job Manager.
Advertencia
Las llamadas por minuto Docker no están diseñadas para usarse con orquestadores de contenedores como AWS ECS, Docker Swarm, Apache Mesos, instancia de contenedor de Azure, etc. La ejecución de Docker llamadas por minuto en un orquestador de contenedor generará problemas inesperados porque es en sí mismo un orquestador de contenedor. Si utiliza la orquestación de contenedores, consulte nuestros requisitos de llamadas por minuto de Kubernetes.
Compatibilidad para
Requisitos
Sistema operativo
Linux kernel: 3.10 o superior macOS: 10.11 o superior
El contenedor de Linux, incluido el minion privado en contenedor, solo se ejecuta en nodos Linux K8.
Procesador
Una CPU moderna y multinúcleo
Minion pod
CPU (vCPU/Core): 0,5 hasta 0,75 Memory: 800Mi hasta 1600Mi
Los recursos asignados a un pod minion son configurables por el usuario.
Pod de Runner
CPU (vCPU/Core): 0,5 hasta 1 Memory: 1250Mi hasta 3000Mi
Para una verificación de API programada, se solicitarán 1250 Mi con un límite de 2500 Mi.
Para una verificación simple browser o browser con secuencia de comandos, se solicitarán 2000 Mi con un límite de 3000 Mi.
Consideraciones adicionales:
Los recursos asignados a un pod de corredor no 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.
Tamaño del disco
Root volume: Un mínimo de 50 GiB (nodo + PV) Persistent volume (PV): Un mínimo de 20 GiB
Si se proporciona un PV ReadWriteOnce (RWO) al minion, se establecerá una afinidad de nodo implícita para garantizar que el minion y el contenedor del corredor estén programados en el mismo nodo. Esto es necesario para permitir que el minion y los corredores asociados accedan al PV, ya que solo un único nodo del clúster puede acceder a un PV RWO.
Medido mediante el monitoreo del rendimiento de escritura para https://newrelic.com en un clúster AWS EKS 1.21 respaldado por un nodo EC2 m5.xlarge que se ejecuta con: clase de almacenamiento gp2, volumen raíz de 50 GiB, PV/PVC de 20 GiB con modo de acceso RWO, un Instalación predeterminada de llamadas por minuto de Kubernetes a través de Helm y 1 monitor a la vez configurado con una frecuencia de 1 minuto. Se esperan mejoras en la eficiencia con la ejecución de varios monitores. Estos valores pueden ser mayores o menores que los suyos dependiendo de muchos factores.
La línea de base para llamadas de Kubernetes por minuto es 3.0 IOPS sin trabajos de monitor en ejecución.
sistema de archivos de disco
NFSv4.1 o superior (si usa NFS)
Versión Kubernetes
Recomendamos que su clúster de Kubernetes admita Kubernetes v1.15.
Advertencia
Para Kubernetes v1.21 o más reciente, use la versión minion v3.0.61 o más reciente.
Después de agosto de 2022, dejaremos de admitir varias capacidades, incluida nuestra URL del gráfico Helm de minion privado original. Para obtener más detalles, incluido cómo prepararse fácilmente para esta transición, consulte nuestra publicación en el Foro de soporte.
Para ver las versiones, la dependencia, los valores predeterminados de cuántos módulos de corredor comienzan con cada minion, el modo de acceso al volumen persistente y más, consulte Mostrar ayuda y ejemplos a continuación.
Clave de ubicación privada
Antes de iniciar llamadas por minuto, debes tener una clave de ubicación privada. Tus llamadas por minuto utilizan 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 , ubica la ubicación privada a la que deseas que se asignen tus llamadas por minuto.
Tenga en cuenta la clave asociada a la ubicación privada con la clave icono.
Sandboxing y dependencia Docker
Sandboxing y Docker Dependencia son aplicables a las llamadas por minuto en un entorno de sistema de contenedor Docker.
Las llamadas por minuto se ejecutan en Docker y pueden 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 script o un monitor browser , las llamadas por minuto crean un nuevo contenedor Docker para ejecutarlo llamado corredor.
El contenedor minion debe configurarse para comunicarse con el motor Docker a fin de generar contenedores 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 minion.
Hay dos dependencias cruciales en el lanzamiento. Para habilitar el espacio aislado, asegúrese de que:
Su directorio grabable y ejecutable está montado en /tmp. El directorio grabable puede ser cualquier directorio en el que desee que se escriban las llamadas por minuto, pero New Relic recomienda el propio /tmp del sistema para facilitar las cosas.
El recuento de núcleos en el host determina cuántos contenedores de corredores las llamadas por minuto pueden ejecutarse simultáneamente en el host. Dado que los requisitos de memoria se ajustan al recuento esperado del contenedor del ejecutor, recomendamos not running multiple CPMs on the same host para evitar la contención de recursos.
Instalar y actualizar versiones de llamadas por minuto
Tanto la instalación como la actualización de llamadas por minuto utilizan el mismo comando para extraer la última imagen de Docker del repositorio de Quay.io donde está alojada la imagen de Docker llamadas por minuto. Vaya a quay.io/repository/newrelic/synthetics-minion para obtener una lista de todos los lanzamientos.
A menos que aloje las imágenes en un repositorio de imágenes local, las conexiones a quay.io o docker.io deberán permitirse a través de su firewall para que Docker extraiga las imágenes de Sintético-minion y Sintético-minion-runner. La imagen del "corredor" se extrae automáticamente al iniciar el contenedor Sintético-minion . Consulte la configuración del entorno Docker y la configuración del entorno Kubernetes para obtener detalles sobre cómo configurar un repositorio local y el extremo del registro del corredor.
Iniciar las llamadas por minuto
Para iniciar las llamadas por minuto, siga las instrucciones correspondientes de Docker o de Kubernetes.
Ejecute el script apropiado para su sistema. Adapte los valores predeterminados comunes para /tmp y /var/run/docker.sock en los siguientes ejemplos para que coincidan con su sistema.
Cuando aparece un mensaje similar a Synthetics Minion is ready and servicing location YOUR_PRIVATE_LOCATION_LABEL , tus llamadas por minuto están activas y listas para ejecutar el monitor asignado a esa ubicación.
AVISO EOL
Después de agosto de 2022, dejaremos de admitir varias capacidades, incluida nuestra URL del gráfico Helm de minion privado original. Para obtener más detalles, incluido cómo prepararse fácilmente para esta transición, consulte nuestra publicación en el Foro de soporte.
Compruebe si el pod minion está en funcionamiento:
bash
$
kubectl get -n YOUR_NAMESPACE pods
Una vez que el atributo status de cada pod se muestra como running, tus llamadas por minuto estarán activas y listas para ejecutar el monitor asignado a tu ubicación privada.
Detener o eliminar las llamadas por minuto
En un entorno de sistema de contenedor Docker, utilice el procedimiento docker stop para detener la ejecución de llamadas por minuto. En un entorno de sistema de orquestación de contenedores Kubernetes, utilice el procedimiento Kubernetes delete para detener la ejecución de llamadas por minuto.
Para llamadas por minuto en el entorno del sistema de orquestación de contenedores de Kubernetes, se pueden utilizar los siguientes comandos de Helm show para ver chart.yaml y values.yaml, respectivamente:
bash
$
helm show chart YOUR_REPO_NAME/synthetics-minion
bash
$
helm show values YOUR_REPO_NAME/synthetics-minion
Mostrar información de licencia
Para mostrar la información de licencia del software de código abierto que utilizamos en las llamadas por minuto, ejecute el comando LICENSE .
Ejecute este comando para ver la información de licencia de llamadas por minuto versiones 2.2.27 o superiores:
bash
$
docker run quay.io/newrelic/synthetics-minion:latest LICENSE
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.
Configurar llamadas por minuto
Puede configurar el minion privado en contenedores con módulos de nodo personalizados, conservar datos entre lanzamientos, usar variables de entorno y más. Para obtener más información, consulte configuración de llamadas por minuto.
Redes
Tanto para Docker como para Kubernetes, las llamadas por minuto y su contenedor 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 nueva red puente para cada contenedor de corredor. Esto significa que las opciones de comando de red como --network y --dns pasadas al contenedor de llamadas por minuto en el inicio (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 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 .
Normalmente, la red del corredor se elimina una vez completada la verificación. Sin embargo, si a llamadas por minuto sale mientras una verificación aún se está ejecutando, o sale en otra circunstancia inesperada, estas redes pueden quedar huérfanas. Potencialmente, esto puede consumir el espacio de direcciones IP disponible para el Docker daemon.
Si esto sucede, es posible que veas INTERNAL ENGINE ERROR code: 31 entradas en tu registro de llamadas por minuto cuando intentes crear un nuevo contenedor de ejecutores. Para limpiarlos solo en entornos de sistema Docker contenedor, ejecute docker network prune.
Seguridad, espacio aislado y ejecución como no root
De forma predeterminada, el software que se ejecuta dentro de llamadas por minuto se ejecuta con root privilegios de usuario. Esto es adecuado para la mayoría de los escenarios, ya que la ejecución está protegida.
En un entorno de sistema de contenedor Docker: para cambiar el perfil predeterminado de AppArmor utilizado por los contenedores que llamadas por minuto generan para ejecutar el monitor, consulte la variable de entornoMINION_RUNNER_APPARMOR (llamadas por minuto versión 3.0.3). o superior) o MINION_DOCKER_RUNNER_APPARMOR (versión llamadas por minuto hasta v3.0.2).
Para ejecutar llamadas por minuto como usuario no root, se requieren pasos adicionales:
Si su entorno requiere que ejecute llamadas por minuto 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 a llamadas por minuto. 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 llamadas por minuto:
bash
$
docker run ... -u1002...
O
bash
$
docker run ... -u1002-eDOCKER_HOST=http://localhost:2375 ...
Repositorio de imágenes Docker
Una única imagen Docker llamadas por minuto sirve tanto para el entorno del sistema de contenedor docker como para el entorno del sistema de orquestación de contenedor de Kubernetes. La imagen de la Docker está alojada en quay.io. Para asegurarse de que la imagen de su Docker esté actualizada, consulte el repositorio quay.io newrelic/Sintético-minion.
Consideraciones adicionales para la conexión de llamadas por minuto
Conexión
Descripción
llamadas por minuto sin acceso a internet
A llamadas por minuto puede funcionar sin acceso a internet, pero con algunas excepciones. La verificación de estado de Internet pública se puede deshabilitar utilizando las variables de entorno denominadas MINION_NETWORK_HEALTHCHECK_DISABLED para un entorno de sistema de contenedor Docker o synthetics.minionNetworkHealthCheckDisabled para un entorno de sistema de orquestación de contenedor de Kubernetes. Las llamadas por minuto deben 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 MINION_API_PROXY*.
Argumentos aprobados en el lanzamiento
Esto se aplica únicamente a un entorno de contenedor Docker. Los argumentos pasados al contenedor de llamadas por minuto en el lanzamiento no se pasan a los contenedores generados por las llamadas por minuto. Docker no tiene ningún concepto de "herencia" o "jerarquía" de contenedor, y no copiamos la configuración que se pasa desde llamadas por minuto al contenedor que ejecuta el monitor. La única configuración compartida entre ellos es la establecida en el nivel del daemon Docker .