• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

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.

Créer un problème

Connexion automatique de Kubernetes APM

L'auto-attachement APM Kubernetes , anciennement connu sous le nom d'opérateur d'agent Kubernetes , rationalise l'observabilité full-stack pour les environnements Kubernetes en automatisant instrumentation APM parallèlement au déploiement de l'agent Kubernetes . En activant l'auto-instrumentation, les développeurs n'ont plus besoin de gérer manuellement les agents APM. La connexion automatique de Kubernetes APM installera, mettra à niveau et supprimera automatiquement les agents APM.

Il prend actuellement en charge Java, .NET, Node.js, Python, Ruby et PHP.

Comment ça marche

  • Le MutatingWebHook, lors de l'installation, est impliqué dans l'interception requests API pour le pod Déplacer sur les nœuds.

  • Reflétant la configuration spécifiée, il mute la spécification pod pour ajouter un conteneur d'initialisation NR et des variables d'environnement.

  • Une fois le pod créé, l'agent New Relic APM est parfaitement intégré à l'application qu'il héberge.

Diagram showing how APM agents are auto injected

Avant de commencer

Avant d'installer l'opérateur, vérifiez les points suivants :

installation

En fonction de vos besoins, vous pouvez choisir d'installer l'auto-attachement Kubernetes APM indépendamment ou avec notre intégration Kubernetes .

Nous vous recommandons fortement de l'installer avec l'intégration Kubernetes pour profiter de toute notre expérience full-stackd'observabilité .

Installation du bundle en plus de l'intégration Kubernetes (recommandé)

Le graphique d'attachement automatique Kubernetes APM fait partie du graphique nri-bundle , qui gère l'installation de tous les composants nécessaires pour permettre une observabilité complète de Kubernetes.

Ajoutez le paramètre k8s-agents-operator.enabled=true à votre commande helm ou incluez-le dans le fichier values.yaml . Consultez la page Installer l’intégration Kubernetes pour plus d’informations sur l’utilisation de Helm ou consultez le graphique nri-bundle .

Voir cet exemple de commandes Helm utilisant des paramètres :

bash
$
helm repo add newrelic https://helm-charts.newrelic.com
$
$
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
>
--set global.licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY \
>
--set global.cluster=CLUSTER_NAME \
>
--namespace=newrelic \
>
--set newrelic-infrastructure.privileged=true \
>
--set global.lowDataMode=true \
>
--set kube-state-metrics.enabled=true \
>
--set kubeEvents.enabled=true \
>
--set k8s-agents-operator.enabled=true \
>
--create-namespace

Installation autonome

Pour installer la connexion automatique Kubernetes APM avec la configuration par défaut, exécutez ces commandes :

bash
$
helm repo add k8s-agents-operator https://newrelic.github.io/k8s-agents-operator
$
helm upgrade --install k8s-agents-operator k8s-agents-operator/k8s-agents-operator \
>
--namespace newrelic \
>
--create-namespace \
>
--set licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY

Pour une liste complète des options de configuration, consultez le tableau README .

Configurer l'auto-instrumentation

Une fois la connexion automatique APM configurée dans votre cluster, l’étape suivante consiste simplement à déployer les configurations requises pour la rendre opérationnelle. Cela implique d’avoir au moins une ressource personnalisée d’instrumentation (CR) active dans le cluster.

Voici ce que l'instrumentation CR vous permet de cartographier :

  • Nom de l'instrumentation CR
  • Où appliquera l'instrumentation CR (merci à podLabelSelector et namespaceLabelSelector)
  • Agent APM (un par CR)
  • Version de l'agent APM
  • Paramètres de configuration APM (variables d'environnement)
  • clé de licence (optionnel)

Le fichier manifeste doit être injecté dans le même espace de nommage (newrelic par défaut) où vous avez installé APM auto-attach.

bash
$
kubectl apply -f ./values.yaml -n newrelic

Comment utiliser les sélecteurs

Pour savoir quand l'instrumentation CR va injecter des agents APM, nous devons utiliser des sélecteurs. Il existe 2 sélecteurs d'étiquettes disponibles que vous pouvez utiliser ensemble (ils agissent comme un opérateur logique AND (&&)) ou séparément selon vos besoins.

  • PodLabelSelector informe l'APM Auto-attach quel pod doit être instrumenté.

    Exemple utilisant matchLabel (sélectionner un pod contenant une tag et une valeur spécifiques) :

    ...
    podLabelSelector:
    matchLabels:
    app.kubernetes.io/name: flask-hello-world
    ...
  • NameSpaceLabelSelector définit au niveau de l'espace de nommage le pod auto-instrumenté.

    Exemple utilisant matchExpressions (sélectionnez un espace de nommage contenant une tag et une valeur spécifiques) :

    ...
    namespaceLabelSelector:
    matchExpressions:
    - key: "kubernetes.io/metadata.name"
    operator: "In"
    values: ["backend"]
    ...

    CONSEIL

    Gardez à l'esprit qu'appliquer l'étiquette kubernetes.io/metadata.name revient à sélectionner en fonction du nom de l'espace de nommage.

Les deux sélecteurs prennent en charge matchLabel et matchExpressions.

Agent APM

Vous devez spécifier l'agent APM et sa version dans le CR d'instrumentation. Nous vous recommandons d'utiliser la dernière version pour profiter des dernières fonctionnalités disponibles.

Langue

Image

Versions disponibles

dotnet

newrelic-dotnet-init:latest

.NET

Java

newrelic-java-init:latest

Java

NodeJS

newrelic-node-init:latest

Nœud

python

newrelic-python-init:latest

Python

rubis

newrelic-ruby-init:latest

Ruby

php

newrelic-php-init:latest

PHP

Voir cet exemple :

...
spec:
agent:
language: dotnet
image: newrelic/newrelic-dotnet-init:latest
...

Paramètres de configuration APM

L'instrumentation CR offre la possibilité d'injecter des variables d'environnement dans le pod pour rationaliser la configuration des agents APM. Voir cet exemple :

...
spec:
env:
# Example overriding the appName configuration by using a label of the pod
- name: NEW_RELIC_APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['app.kubernetes.io/name']
...

Dans l'exemple ci-dessus, nous vous montrons comment configurer les paramètres de l'agent globalement à l'aide de variables d'environnement. Consultez la documentation de configuration de chaque agent pour connaître les options de configuration disponibles :

Important

Vous pouvez injecter ces variables d’environnement dans le manifeste de déploiement de l’application.

clé de licence (optionnel)

Lorsque vous l'installez, un est créé et c'est la licence par défaut. Suivez ces étapes si vous devez envoyer la télémétrie APM à un autre compte :

  • Pour créer un secret contenant une nouvelle clé de licence, exécutez cette commande :

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace my-monitored-namespace \
    >
    --from-literal=new_relic_license_key=YOUR_NEW_RELIC_INGEST_LICENSE_KEY
  • Pour référencer le secret du CR d'instrumentation, exécutez cette commande :

    ...
    spec:
    licenseKeySecret: the-name-of-the-custom-secret
    ...

Exemples d'instrumentation CR

Mettre à jour l'instrumentation APM dans les applications

Par défaut, la connexion automatique Kubernetes APM installe automatiquement la dernière version disponible de l' agent APM correspondant.

Une fois la monitoring d'une application démarrée, elle n'est pas automatiquement mise à jour vers une version plus récente, sauf si vous choisissez de la mettre à jour. Vous pouvez mettre à jour l'application en redéployant le pod ou en redémarrant votre déploiement.

Supprimer l'instrumentation APM dans les applications

Pour supprimer l'instrumentation APM d'une application, vous devez modifier le sélecteur d'étiquette correspondant à l'intérieur du podLabelSelector ou namespaceLabelSelector utilisé ou supprimer le CR d'instrumentation. Ensuite, redémarrez le déploiement. Le processus de suppression ne prend que quelques secondes.

Mettre à jour l'auto-attachement de Kubernetes APM

Installation du bundle

Exécutez une mise à jour du graphique nri-bundle avec le paramètre suivant :

bash
$
k8s-agents-operator.enabled=true

Installation autonome

Exécutez la commande helm upgrade pour mettre à jour vers une version plus récente de la connexion automatique Kubernetes APM.

bash
$
helm upgrade k8s-agents-operator newrelic/k8s-agents-operator -n newrelic

Désinstallation de l'auto-attachement Kubernetes APM

Installation du bundle

Désinstallez le graphique nri-bundle ou, si vous souhaitez uniquement supprimer la connexion automatique de Kubernetes APM, exécutez une mise à niveau de Helm avec le paramètre suivant :

bash
$
k8s-agents-operator.enabled=false

Installation autonome

Pour désinstaller et supprimer la connexion automatique Kubernetes APM, exécutez cette commande :

bash
$
helm uninstall k8s-agents-operator -n newrelic

Rechercher et utiliser des données

  • Obtenez des informations détaillées sur vos applications et résolvez les incidents grâce à la page récapitulative de l'APM .

  • Consultez la page récapitulative de Kubernetes . Il fournit des informations Kubernetes détaillées dans le cadre de vos applications de monitoring.

Certificats

L'attachement automatique de Kubernetes APM peut prendre en charge cert-manager si vous le préférez.

  • Exécutez cette commande pour installer la carte Helm cert-manager :

    bash
    $
    helm install cert-manager jetstack/cert-manager \
    >
    --namespace cert-manager \
    >
    --create-namespace \
    >
    --set crds.enabled=true
  • Dans votre fichier values.yaml , définissez admissionWebhooks.autoGenerateCert.enabled: false et admissionWebhooks.certManager.enabled: true. Ensuite, installez la carte normalement.

Sortie de carte disponible

Exécutez cette commande pour voir les graphiques disponibles :

bash
$
helm search repo k8s-agents-operator

Questions fréquemment posées

Dépannage

Si vos applications ne sont pas instrumentées, vous devez vérifier les points suivants :

  • Assurez-vous de redéployer ou de déployer de nouvelles applications après avoir installé la connexion automatique de Kubernetes APM. Notez que seules les nouvelles applications auto-instrumentées sont déployées dans le cluster.

  • Exécutez cette commande pour vérifier que le secret est installé dans l'espace de nommage de l'application :

    bash
    $
    kubectl get secrets -n NAMESPACE
  • Vérifiez que le pod possède les étiquettes requises qui permettent l'instrumentation automatique via CR lors de l'utilisation podLabelSelector. De même, vérifiez que l'espace de nommage possède les étiquettes requises lors de l'utilisation namespaceLabelSelector à l'intérieur du CR.

    bash
    $
    kubectl get pod POD_NAME -n NAMESPACE -o jsonpath='{.metadata.annotations}'
  • Exécutez cette commande pour obtenir le log du pod de connexion automatique APM :

    bash
    $
    kubectl logs AGENT_OPERATOR_POD -n newrelic
  • Exécutez cette commande pour vous assurer que le conteneur init a été injecté et exécuté avec succès dans le pod de l'application.

    bash
    $
    kubectl describe pod POD_NAME -n NAMESPACE

Comment migrer à partir de versions précédentes nécessitant des annotations

À partir de la version 0.14, les annotations dans le manifeste de déploiement de l'application ne sont plus nécessaires pour que les applications soient auto-instrumentées.

Il est conseillé de désinstaller toutes les versions antérieures à 0.14 et de procéder à l'installation de la dernière sortie. L'utilisation des sélecteurs d'étiquettes dans l'instrumentation CR permettra le déploiement précis des agents APM, éliminant ainsi le besoin d'annotations.

Soutien

La connexion automatique de Kubernetes APM prend en charge les langues suivantes et leurs versions minimales prises en charge conformément à notre politique de prise en charge standard de l'agent APM :

  • Agent Java : 8.12
  • Agent .NET : 10.25
  • Agent Ruby : 9.10
  • Agent Node.js : 11.9
  • Python : 9.10
  • PHP: 11.12

Pour tout problème :

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.