Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Le gestionnaire de tâches peut fonctionner dans un environnement de système de conteneur Docker, un environnement de système de conteneur Podman ou un environnement de système d'orchestration de conteneur Kubernetes. Le gestionnaire de tâches détectera automatiquement son environnement pour sélectionner le mode de fonctionnement approprié.
Fonctionnalité du gestionnaire de tâches Synthetics
Étant donné que le gestionnaire de tâches Synthetics fonctionne comme un conteneur plutôt que comme une machine virtuelle, nous avons simplifié l'installation, la prise en main et la mise à jour de votre gestion et de votre orchestration des tâches. Il est également livré avec quelques fonctionnalités supplémentaires :
Sécurité et prise en charge améliorées pour l'exécution des utilisateurs non root .
Capacité à exploiter un conteneur Docker comme environnement sandbox .
Fonctionnalité spécifique Kubernetes
Le gestionnaire de tâches introduit certaines fonctionnalités supplémentaires spécifiques à Kubernetes :
Utilise les ressources Kubernetes CronJob pour exécuter un moniteur sans ping
Ne nécessite pas d'accès privilégié au socket Docker
Prend en charge les clusters Kuberneteshébergés et sur site
Prend en charge divers moteurs de conteneurs tels que Docker et Containerd
Déployable via des graphiques Helm ainsi que des fichiers YAML de configuration
Permet une allocation de ressources configurable en fonction de l'exécution des tâches (ping, API et navigateur) pour une gestion optimale des ressources
observabilité offerte via cluster Kubernetes l'explorateur New Relic
exigence système et compatibilité
Pour héberger les gestionnaires de tâches Synthetics, votre système doit répondre aux exigences minimales pour l'environnement système choisi.
Prudence
Ne modifiez aucun fichier du gestionnaire de tâches Synthetics. New Relic n'est pas responsable des modifications que vous apportez. Pour plus d'informations, contactez votre représentant de compte ou un représentant commercial technique New Relic.
Compatibilité pour
Exigences
système d'exploitation
Linux kernel: 3.10 ou supérieur macOS: 10.11 ou supérieur Windows: Windows 10 64 bits ou supérieur
Vous devez également configurer Docker pour exécuter le conteneur Linux afin que les gestionnaires de tâches Synthetics fonctionnent sur le système Windows .
Le gestionnaire de tâches Docker Synthetics n'est pas conçu pour être utilisé avec des orchestrateurs de conteneurs tels que AWS ECS, Docker Swarm, Apache Mesos, l'instance de conteneur Azure , etc. L’exécution du gestionnaire de tâches Docker Synthetics dans un orchestrateur de conteneurs entraîne des problèmes inattendus car il fonctionne lui-même comme un orchestrateur. Si vous utilisez l'orchestration de conteneurs, consultez nos exigences relatives au gestionnaire de tâches Kubernetes Synthetics.
Le gestionnaire de tâches Podman Synthetics n'est pas conçu pour être utilisé avec des orchestrateurs de conteneurs tels que AWS ECS, Docker Swarm, Apache Mesos, l'instance de conteneur Azure , etc. L’exécution du gestionnaire de tâches Docker Synthetics dans un orchestrateur de conteneurs entraîne des problèmes inattendus car il fonctionne lui-même comme un orchestrateur. Si vous utilisez l'orchestration de conteneurs, consultez nos exigences relatives au gestionnaire de tâches Kubernetes Synthetics.
Compatibilité pour
Exigences
système d'exploitation
Linux kernel: 3.10 ou supérieur macOS: 10.11 ou supérieur
Le conteneur Linux, y compris le gestionnaire de tâches, ne fonctionne que sur les nœuds Linux K8.
Processeur
Un processeur multi-cœur moderne
Synthetics de gestion des tâches pod
CPU (vCPU/Core): 0,5 à 0,75 Memory: 800Mi jusqu'à 1600Mi
Les ressources allouées à un pod de gestionnaire de tâches Synthetics sont configurables par l'utilisateur.
podd'exécution Ping
CPU (vCPU/Core): 0,5 à 0,75 Memory: 500 Mi jusqu'à 1 Gi
Considérations supplémentaires :
Les ressources allouées à un pod d’exécution ping sont configurables par l’utilisateur.
Le rapport limite/requête de ressources maximal pour le processeur et la mémoire est de 2.
Node.js d'exécution de l'API pod
CPU (vCPU/Core): 0,5 à 0,75 Memory: 1250Mi jusqu'à 2500Mi
Considérations supplémentaires :
Les ressources allouées à un pod d’exécution d’API Node.js sont configurables par l’utilisateur.
Le rapport limite/requête de ressources maximal pour le processeur et la mémoire est de 2.
Node.js d'exécution du navigateur pod
CPU (vCPU/Core): 1,0 à 1,5 Memory: 2000Mi jusqu'à 3000Mi
Considérations supplémentaires :
Les ressources allouées à un pod d'exécution de navigateur Node.js sont configurables par l'utilisateur.
Le rapport limite/requête de ressources maximal pour le processeur et la mémoire est de 2.
Pour afficher les versions, les dépendances, les valeurs par défaut du nombre de pods d'exécution démarrés avec chaque gestionnaire de tâches Synthetics et plus encore, veuillez consulter Afficher l'aide et les exemples ci-dessous.
clé privée du site
Avant de lancer les gestionnaires de tâches Synthetics, vous devez disposer d'une clé privée de site. Votre gestionnaire de tâches Synthetics utilise la clé pour s'authentifier auprès de New Relic et exécuter le moniteur associé à ce site privé.
Dans l'index Private locations , recherchez le site privé auquel vous souhaitez que votre gestionnaire de tâches Synthetics soit affecté.
Notez la clé associée au site privé avec la clé icône.
Installer, mettre à jour et configurer le gestionnaire de tâches Synthetics
Si vous exécutez plusieurs conteneurs privés de sites Docker ou Podman sur le même hôte, vous aurez des conflits de ports. Pour éviter ce conflit de port, assurez-vous de procéder comme suit lorsque vous commencez à configurer des gestionnaires de tâches :
Exécutez des gestionnaires de tâches et des CPM sur différents hôtes.
Exécutez chaque gestionnaire de tâches sur un hôte distinct.
À moins que vous n'hébergiez les images dans un référentiel d'images local, vous devez autoriser les connexions à docker.io via votre pare-feu afin que Docker ou Podman puisse extraire le gestionnaire de tâches Synthetics et les images synthétiques d'exécution. Lorsque le gestionnaire de tâches Synthetics démarre, les images d'exécution sont extraites automatiquement. Consultez Configuration de l’environnement Docker, Configuration de l’environnement Podman et Configuration de l’environnement Kubernetes pour plus de détails sur la façon de définir un référentiel local et le point de terminaison du registre d’exécution.
Assurez-vous d'avoir activé la dépendance Docker pour le sandboxing et installé le gestionnaire de tâches Synthetics sur votre système.
Exécutez le script approprié pour votre système. Adaptez la valeur par défaut commune /var/run/docker.sock dans les exemples suivants pour qu'elle corresponde à votre système.
Vérifiez si le pod du gestionnaire de tâches Synthetics est opérationnel :
bash
$
kubectl get -n YOUR_NAMESPACE pods
Une fois que l'attribut status de chaque pod est affiché comme running, votre gestionnaire de tâches Synthetics est opérationnel et prêt à exécuter le moniteur attribué à votre site privé.
Arrêter ou supprimer le gestionnaire de tâches Synthetics
Dans un environnement système conteneur Docker ou Podman, utilisez la procédure stop correspondante pour arrêter le gestionnaire de tâches Synthetics. Dans un environnement de système d’orchestration de conteneur Kubernetes , utilisez la procédure Kubernetes delete pour arrêter l’exécution du gestionnaire de tâches Synthetics.
Supprimez l'espace de nommage mis en place pour le gestionnaire de jobs Synthetics dans votre cluster Kubernetes:
bash
$
kubectl delete namespace YOUR_NAMESPACE
Sandboxing et dépendance
Le sandboxing et la dépendance sont applicables au gestionnaire de tâches Synthetics dans un environnement système conteneurisé Docker ou Podman.
Le gestionnaire de tâches Synthetics s'exécute dans Docker et est capable d'exploiter Docker comme technologie de sandboxing. Cela garantit une isolation complète de l’exécution du moniteur, ce qui améliore la sécurité, la fiabilité et la répétabilité. Chaque fois qu'un moniteur de script ou de navigateur est exécuté, le gestionnaire de tâches Synthetics crée un tout nouveau conteneur Docker pour l'exécuter à l'aide de l'environnement d'exécution correspondant.
Le conteneur du gestionnaire de tâches Synthetics doit être configuré pour communiquer avec le moteur Docker afin de générer un conteneur d'exécution supplémentaire. Chaque conteneur généré est ensuite dédié à l'exécution d'une vérification associée au moniteur Synthétique exécuté sur le site privé auquel le conteneur du gestionnaire de tâches Synthetics est associé.
Il existe une dépendance cruciale au lancement. Pour activer le sandboxing, assurez-vous que :
Le nombre de cœurs sur l'hôte détermine le nombre de conteneurs d'exécution que le gestionnaire de tâches Synthetics peut exécuter simultanément sur l'hôte. Étant donné que les besoins en mémoire sont adaptés au nombre attendu de conteneurs d'exécution, nous recommandons not running multiple synthetics job managers on the same host pour éviter les conflits de ressources.
Le gestionnaire de tâches Synthetics s'exécute dans Podman et est capable d'exploiter Podman comme technologie de sandboxing. Cela garantit une isolation complète de l’exécution du moniteur, ce qui améliore la sécurité, la fiabilité et la répétabilité. Chaque fois qu'un moniteur de script ou de navigateur est exécuté, le gestionnaire de tâches Synthetics crée un tout nouveau conteneur Podman pour l'exécuter à l'aide de l'environnement d'exécution correspondant.
Le conteneur du gestionnaire de tâches Synthetics doit être configuré pour communiquer avec le moteur Podman afin de générer un conteneur d'exécution supplémentaire. Chaque conteneur généré est ensuite dédié à l'exécution d'une vérification associée au moniteur Synthétique exécuté sur le site privé auquel le conteneur du gestionnaire de tâches Synthetics est associé.
Il existe une dépendance cruciale au lancement. Pour activer le sandboxing, assurez-vous que vous disposez des éléments suivants :
Créez un service API Podman et configurez Podman pour fournir un accès API HTTP.
mkdir -p ~/.config/systemd/user
touch ~/.config/systemd/user/podman-api.service
vi ~/.config/systemd/user/podman-api.service
Définissez le service pour exposer l’API de Podman sur le port 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
Activation et démarrage du service API Podman.
systemctl --user daemon-reload
systemctl --user enable podman-api.service
systemctl --user start podman-api.service
systemctl --user status podman-api.service
Prudence
Le nombre de cœurs sur l'hôte détermine le nombre de conteneurs d'exécution que le gestionnaire de tâches Synthetics peut exécuter simultanément sur l'hôte. Étant donné que les besoins en mémoire sont adaptés au nombre attendu de conteneurs d'exécution, nous recommandons not running multiple synthetics job managers on the same host pour éviter les conflits de ressources.
Sécurité, sandboxing et exécution en tant que non-root
Par défaut, le logiciel exécuté dans un gestionnaire de tâches Synthetics est exécuté avec les privilèges utilisateur root . Cela convient à la plupart des scénarios, car l’exécution est en sandbox.
Pour exécuter le gestionnaire de tâches Synthetics en tant qu'utilisateur non root, des étapes supplémentaires sont requises :
Si votre environnement nécessite que vous exécutiez le gestionnaire de tâches Synthetics en tant qu'utilisateur non root, suivez cette procédure. Dans l'exemple suivant, l'utilisateur non root est my_user.
Assurez-vous que my_user peut utiliser le moteur Docker sur l'hôte :
Vérifiez que my_userappartient au groupe système "docker". L'accès root limité au docker.sock est toujours nécessaire pour créer des réseaux de ponts.
Vérifiez que my_user dispose des autorisations de lecture/écriture sur tous les répertoires et volumes transmis au gestionnaire de tâches Synthetics. Pour définir ces autorisations, utilisez la commande chmod .
Obtenez le uid de my_user à utiliser dans la commande d'exécution : id -u my_user.
Une fois ces conditions remplies, utilisez l'option "-u <uid>:<gid>" lors du lancement du gestionnaire de tâches Synthetics :
bash
$
docker run ... -u1002...
OU
bash
$
docker run ... -u1002-eDOCKER_HOST=http://localhost:2375 ...
Comprendre vos environnements Docker, Podman ou Kubernetes
Vous trouverez ci-dessous des informations supplémentaires sur la maintenance et la compréhension de l'environnement de conteneur du gestionnaire de tâches. Consultez les informations de licence, comprenez les paramètres réseau du gestionnaire de tâches et consultez le référentiel d'images Docker.
Pour un gestionnaire de tâches Synthetics dans l'environnement du système d'orchestration de conteneurs Kubernetes , les commandes Helm show suivantes peuvent être utilisées pour afficher respectivement chart.yaml et values.yaml:
bash
$
helm show chart YOUR_REPO_NAME/synthetics-job-manager
bash
$
helm show values YOUR_REPO_NAME/synthetics-job-manager
Certains de nos logiciels open source sont répertoriés sous plusieurs licences logicielles, et dans ce cas, nous avons répertorié la licence que nous avons choisi d'utiliser. Nos informations de licence sont également disponibles dans notre documentation de licences.
Pour Docker et Kubernetes, le gestionnaire de tâches Synthetics et son conteneur d'exécution hériteront des paramètres réseau de l'hôte. Pour un exemple de ceci sur un environnement système de conteneur Docker , consultez le site Docker .
Un réseau de pont est créé pour la communication entre le gestionnaire de tâches Synthetics et le conteneur d'exécution. Cela signifie que les options de commande réseau telles que --network et --dns transmises au conteneur du gestionnaire de tâches Synthetics au lancement (comme via les commandes d'exécution Docker sur un environnement système de conteneur Docker ) ne sont pas héritées ou utilisées par le conteneur d'exécution.
Lorsque ces réseaux sont créés, ils proviennent du pool d’adresses IP par défaut configuré pour le daemon. Pour un exemple de ceci sur un environnement système de conteneur Docker , consultez le site Docker.
Dans le cas de Podman, nous n'utilisons pas de réseau pont pour la communication entre le gestionnaire de tâches Synthetics et le conteneur d'exécution, mais nous utilisons plutôt un pod Podman. Tous les conteneurs d'un pod Podman partagent le même espace de nommage réseau. Cela signifie qu'ils partagent la même adresse IP au sein de ce pod. Dans ce cas, bien que les conteneurs partagent la même IP, leurs services sont exposés sur des ports différents.
Une seule image Docker du gestionnaire de tâches Synthetics sert l'environnement du système d'orchestration de conteneurs Docker, Podman et Kubernetes . L'image Docker est hébergée sur Docker Hub. Pour vous assurer que votre image Docker est à jour, consultez le référentiel Docker Hub newrelic/synthetics-job-manager.
Considérations supplémentaires pour la connexion au gestionnaire de tâches Synthetics
Connexion
Description
Gestionnaires de tâches Synthetics sans accès Internet
Un gestionnaire de tâches Synthetics peut fonctionner sans accès à Internet, mais avec quelques exceptions. Le gestionnaire de tâches Synthetics doit pouvoir contacter le domaine "synthetics-horde.nr-data.net" . Cela est nécessaire pour qu'il puisse signaler les données à New Relic et recevoir le moniteur à exécuter. Demandez à votre administrateur réseau si cela constitue un problème et comment configurer des exceptions.
Communiquer avec les synthétiques via un proxy
Pour configurer la communication avec New Relic par proxy, utilisez les variables d'environnement nommées HORDE_API_PROXY*.
Arguments avancés au lancement
Ceci s'applique uniquement aux environnements de conteneurs Docker et Podman. Les arguments passés au conteneur du gestionnaire de tâches Synthetics au lancement ne sont pas transmis au conteneur d'exécution généré par le gestionnaire de tâches Synthetics. Docker et Podman n'ont pas de concept d'« héritage » ou de « hiérarchie » de conteneur, et nous ne copions pas la configuration transmise du gestionnaire de tâches Synthetics au conteneur d'exécution. Cependant, dans le cas de Podman, les arguments transmis au niveau du pod sont partagés entre le gestionnaire de tâches Synthetics et le conteneur d'exécution dans le pod. La seule configuration partagée entre eux est celle définie au niveau du daemon Docker .