La conexión automática Kubernetes APM, anteriormente conocida como operador de agente Kubernetes, agiliza la observabilidad de todo el stack para entornos Kubernetes al automatizar la instrumentación APM junto con el despliegue del agente Kubernetes. Al habilitar instrumentación automática, los desarrolladores ya no necesitan gestionar manualmente el agente APM. La conexión automática APM Kubernetes instalará, actualizará y eliminará automáticamente el agente APM.
Actualmente es compatible con Java, .NET, Node.js, Python, Ruby y PHP.
Cómo funciona
El
MutatingWebHook
, tras la instalación, interviene en la interceptación requests API para desplegar pod en nodos.Reflejando la configuración especificada, muta la especificación pod para agregar un contenedor de inicio NR y variables de entorno.
Tras la creación del pod, el agente New Relic APM se integra perfectamente en la aplicación alojada en él.

Antes de que empieces
Antes de instalar el operador, verifique lo siguiente:
Helm: Debes instalarlo para emplear los gráficos. Consulte la documentación de Helm si necesita ayuda para comenzar.
Kubectl: Tienes que configurarlo para comunicar con tu clúster.
Instalacion
Dependiendo de lo que necesites, puedes optar por instalar la conexión automática Kubernetes APM de forma independiente o junto con nuestra integración Kubernetes.
Recomendamos encarecidamente instalarlo junto con la integración Kubernetes para aprovechar toda nuestra experiencia de observabilidad de todo el stack .
Instalación del paquete además de la integración Kubernetes (recomendado)
El gráfico de conexión automática de Kubernetes APM es parte del gráfico nri-bundle
, que gestiona la instalación de todos los componentes necesarios para permitir una observabilidad completa de Kubernetes.
Agregue el parámetro k8s-agents-operator.enabled=true
a su comando helm o inclúyalo en el archivo values.yaml
. Consulta la página Instalar la integración de Kubernetes para obtener más información sobre el uso de Helm o consulta el gráfico nri-bundle
.
Vea este ejemplo de comandos Helm usando parámetro:
$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
Instalación independiente
Para instalar la conexión automática de Kubernetes APM con la configuración predeterminada, ejecute estos comandos:
$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
Para obtener una lista completa de opciones de configuración, consulte el cuadro LÉAME .
Configurar instrumentación automática
Una vez que la conexión automática de APM esté configurada en su clúster, el siguiente paso es simplemente implementar las configuraciones necesarias para que funcione. Esto implica tener al menos un recurso personalizado de instrumentación (CR) activo en el clúster.
Esto es lo que la instrumentación CR le permite mapear:
- Nombre de la instrumentación CR
- Donde se aplicará la instrumentación CR empleando
selectors
- agente APM (uno por CR)
- Versión del agente APM
- Parámetro de configuración de APM (env vars)
- clave de licencia (opcional)
El archivo de manifiesto debe inyectar en el mismo namespace (newrelic
de manera predeterminada) donde instaló la conexión automática APM.
$kubectl apply -f ./instrumentation.yaml -n newrelic
Aquí tienes una instrumentación.yaml completa para tu referencia.
Cómo emplear selectores
Emplee selectores para controlar qué recursos inyecta el CR con el agente APM. Hay tres selectores disponibles. Puedes usarlos individualmente o en combinación. Cuando se combinan, los selectores se evalúan empleando una operación lógica AND (&&
).
MatchLabel y MatchExpressions
Todos los selectores admiten matchLabel
y matchExpressions
.
Agente APM
Debes especificar el agente APM y su versión dentro del CR de instrumentación. Recomendamos emplear la última versión para aprovechar las nuevas funciones disponibles.
Idioma | Imagen | Versiones disponibles |
---|---|---|
puntonet |
| |
java |
| |
node.js |
| |
pitón |
| |
rubí |
| |
php |
|
Vea este ejemplo:
...spec: agent: language: dotnet image: newrelic/newrelic-dotnet-init:latest...
Configuración de manija APM
La instrumentación CR proporciona la capacidad de inyectar variables de entorno en el pod para agilizar la configuración del agente APM. Vea este ejemplo:
...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']...
En el ejemplo anterior, le mostramos cómo puede configurar los ajustes del agente globalmente usando variables de entorno. Consulte la documentación de configuración de cada agente para conocer las opciones de configuración disponibles:
Importante
Puede inyectar estas variables de entorno en el manifiesto de implementación de la aplicación.
clave de licencia (opcional)
Al instalarlo se crea un y es la licencia por defecto. Siga estos pasos si necesita enviar la telemetría de APM a una cuenta diferente:
Para crear un secreto que contenga una nueva clave de licencia, ejecute este comando:
bash$kubectl create secret generic newrelic-key-secret \>--namespace my-monitored-namespace \>--from-literal=new_relic_license_key=YOUR_NEW_RELIC_INGEST_LICENSE_KEYPara hacer referencia al secreto del CR de instrumentación, ejecute este comando:
...spec:licenseKeySecret: the-name-of-the-custom-secret...
Ejemplos de instrumentación CR
Actualizar instrumentación APM en la aplicación
De forma predeterminada, la conexión automática APM Kubernetes instala automáticamente la última versión disponible del agente APM correspondiente.
Una vez que comienza el monitoreo de una aplicación, esta no se actualiza automáticamente a una versión más nueva a menos que usted elija actualizarla. Puede actualizar la aplicación volviendo a implementar el pod o resetear su implementación.
Eliminar instrumentación APM en la aplicación
Para eliminar la instrumentación APM de una aplicación, debe cambiar el selector de etiqueta correspondiente dentro del podLabelSelector
o namespaceLabelSelector
usado o eliminar el CR de instrumentación. Luego, resetear el despliegue. El proceso de eliminación sólo tarda unos segundos.
Actualizar la conexión automática de APM de Kubernetes
instalación del paquete
Ejecute una actualización del gráfico nri-bundle
con el siguiente parámetro:
$k8s-agents-operator.enabled=true
Instalación independiente
Ejecute el comando helm upgrade
para actualizar a una versión más nueva de la conexión automática de APM de Kubernetes.
$helm upgrade k8s-agents-operator newrelic/k8s-agents-operator -n newrelic
Desinstalación de la conexión automática de APM de Kubernetes
instalación del paquete
Desinstale el gráfico nri-bundle
o, si solo desea eliminar la conexión automática de Kubernetes APM, ejecute una actualización de Helm con el siguiente parámetro:
$k8s-agents-operator.enabled=false
Instalación independiente
Para desinstalar y eliminar la conexión automática de Kubernetes APM, ejecute este comando:
$helm uninstall k8s-agents-operator -n newrelic
Buscar y utilizar datos
Obtenga información valiosa de su aplicación y resuelva el incidente empleando la página de resumen APM.
Consulte la página de resumen de Kubernetes . Proporciona Kubernetes información valiosa en el contexto de su aplicación de monitor.
Certificados
La conexión automática de APM de Kubernetes puede admitir cert-manager
si se prefiere.
Ejecute este comando para instalar el gráfico Helm
cert-manager
:bash$helm install cert-manager jetstack/cert-manager \>--namespace cert-manager \>--create-namespace \>--set crds.enabled=trueEn su archivo
values.yaml
, configureadmissionWebhooks.autoGenerateCert.enabled: false
yadmissionWebhooks.certManager.enabled: true
. A continuación, instale el gráfico de forma normal.
Lanzamientos de gráficos disponibles
Ejecute este comando para ver los gráficos disponibles:
$helm search repo k8s-agents-operator
Preguntas frecuentes
Resolución de problemas
Si tu aplicación no está instrumentada, debes verificar lo siguiente:
Cerciorar de volver a implementar o desplegar una nueva aplicación luego de instalar la conexión automática Kubernetes APM. Observe que solo las nuevas aplicaciones auto-instrumentadas se implementan en el clúster.
Ejecute este comando para verificar que el secreto esté instalado en el namespace de la aplicación:
bash$kubectl get secrets -n NAMESPACEVerifique que el pod tenga las etiquetas necesarias que habilitan la instrumentación automática a través de CR cuando se emplea
podLabelSelector
. De manera similar, verifique que el namespace tenga las etiquetas requeridas cuando empleenamespaceLabelSelector
dentro del CR.bash$kubectl get pod POD_NAME -n NAMESPACE -o jsonpath='{.metadata.annotations}'Ejecute este comando para obtener registros del pod de conexión automática de APM:
bash$kubectl logs AGENT_OPERATOR_POD -n newrelicEjecute este comando para garantizar que el contenedor
init
se inyectó y ejecutado correctamente dentro del pod de la aplicación.bash$kubectl describe pod POD_NAME -n NAMESPACE
Cómo migrar desde versiones anteriores que requerían anotaciones
A partir de la versión 0.14, las anotaciones dentro del manifiesto de despliegue de la aplicación ya no son necesarias para que la aplicación se instrumente automáticamente.
Se recomienda desinstalar cualquier versión anterior a la 0.14 y continuar con la instalación de la última versión. La utilización de los selectores de etiquetas dentro de la instrumentación CR permitirá la implementación precisa del agente APM, eliminando así la necesidad de anotaciones.
Apoyo
La conexión automática de Kubernetes APM admite los siguientes idiomas y sus versiones mínimas compatibles de acuerdo con nuestra política de compatibilidad de agente APM estándar:
- Agente de Java: 8.12
- Agente .NET: 10.25
- Agente Ruby : 9.10
- Agente Node.js : 11.9
- Python: 9.10
- PHP: 11.12
Para cualquier problema:
Revise la sección de problemas en GitHub para detectar problemas similares o considere abrir un nuevo problema.
Puede comunicar con el equipo de soporte de New Relic para obtener ayuda.