Kubernetes
Cómo instalar Lymen en un cluster de Kubernetes con Helm, qué mide y qué límites tiene hoy.
En esta página
Para qué sirve#
Si tus aplicaciones corren en Kubernetes, no se usa el instalador de una línea de los servidores: se instala un chart de Helm que pone un agente en cada nodo del cluster. El agente junta las métricas del nodo, los logs de los contenedores y recibe los datos de tus aplicaciones. También puede activar el monitoreo en detalle de aplicaciones con una anotación en el pod, sin tocar su código.
En Infraestructura aparece una pestaña Kubernetes con cada cluster: cantidad de nodos, pods en marcha y reinicios.
Cuándo usarlo#
Solo si tenés un cluster de Kubernetes. Si tus aplicaciones corren en servidores comunes, usá Linux o Windows.
Qué se probó. El chart se probó en un cluster de un solo nodo creado con kind, con una ingesta de prueba. No se probó en un cluster de producción ni en servicios gestionados (EKS, AKS, GKE). Hacé la primera instalación en un cluster de pruebas.
Qué mide hoy (y qué no)#
| Sí | No (todavía) |
|---|---|
| Métricas del nodo (CPU, memoria, disco, red) | Métricas por pod o por contenedor |
| Logs de los contenedores | Eventos del cluster (reinicios, desalojos) |
| Datos de las aplicaciones que mandan al agente de su nodo | Reglas de Privacidad configurables desde el portal para el agente del nodo |
| Monitoreo en detalle por anotación (Java, Node.js, Python, .NET) |
Los datos del pod (nombre, namespace, cluster) salen del nombre del archivo de log y de la instrumentación automática.
Requisitos#
- Helm y acceso al cluster con
kubectl. - Un token de tu cuenta de Lymen, guardado como Secret de Kubernetes con la clave
token. - La dirección de ingesta de tu cuenta (
https://<tu-cuenta>-ingesta.lymen.app). - Un namespace con política de seguridad
privileged, porque el agente lee el disco del nodo (logs y métricas del host).
Paso a paso#
kubectl create ns lymen
kubectl label ns lymen pod-security.kubernetes.io/enforce=privileged
kubectl -n lymen create secret generic lymen-token --from-literal=token=<tu-token>
helm dependency build chart/lymen
helm install lymen chart/lymen -n lymen --wait \
--set ingesta.url=https://<tu-cuenta>-ingesta.lymen.app \
--set ingesta.existingSecret=lymen-token \
--set cluster.nombre=produccionEl chart lo entrega Lymen.
Para medir una aplicación en detalle, anotá su pod y reinicialo. Con <lenguaje> igual a java, nodejs, python o dotnet:
metadata:
annotations:
instrumentation.opentelemetry.io/inject-<lenguaje>: "lymen/lymen"(La anotación es el estándar del operador que usa el chart: el valor es namespace/nombre.)
Valores del chart#
| Valor | Para qué sirve | Por defecto | Impacto de cambiarlo |
|---|---|---|---|
ingesta.url |
Dirección de ingesta de tu cuenta. | — (obligatorio) | Si es incorrecta, no llega nada. |
ingesta.existingSecret |
Secret ya existente con la clave token. |
— | Seguridad. Es lo recomendado. |
ingesta.token |
Token directo; el chart crea el Secret. | — | Seguridad. Queda guardado en el historial de Helm: preferí existingSecret. |
cluster.nombre |
Nombre del cluster en el portal. | — | Es lo que ves en la pestaña Kubernetes y en los filtros. |
cluster.entorno |
Entorno de los datos. | produccion |
Etiqueta tus datos. |
agente.resources |
Recursos por nodo. | Pide 50m de CPU y 128Mi; tope 500m y 384Mi | Bajar el tope puede cortar el agente en nodos con mucho log. |
agente.limiteMemoriaMiB |
Límite blando de memoria del agente. | 256 | Tiene que ser menor que el tope del contenedor. |
agente.tolerations |
En qué nodos corre. | Todos | Restringirlo deja nodos sin medir. |
agente.recibirAplicaciones.servicioLocal |
Cada app entrega al agente de su propio nodo. | Sí | — |
agente.recibirAplicaciones.hostPort |
Además abre el puerto en el nodo. | No | Pide una política de seguridad menos estricta. |
agente.metricasNodo.enabled / .intervalo |
Métricas del nodo y cada cuánto. | Sí / 30 s | Un intervalo más corto guarda más datos (costo). |
agente.logs.enabled |
Lee los logs de los contenedores. | Sí | Privacidad y costo. Apagarlo evita guardar logs; encenderlo puede traer datos personales a los logs de las apps. |
agente.logs.excluirNamespaces |
Namespaces que no se leen. | kube-system, kube-public, kube-node-lease |
Sacar uno de la lista suma ruido; sumar los que no te interesen reduce costo. |
operador.enabled |
Instala el operador que instrumenta aplicaciones. | Sí | Apagado, la anotación no hace nada. |
instrumentacion.muestreo |
Qué parte de las trazas de la instrumentación automática se guarda. | "1" (todo) |
Menos trazas = menos costo, pero menos visibilidad. |
gateway.administracion.enabled |
Enlace de administración con el portal. | Sí | Apagado, el portal no ve el estado de los agentes del cluster. |
Cómo se actualiza y se desinstala#
Con helm upgrade lymen chart/lymen -n lymen … (los certificados del operador se conservan entre actualizaciones). Con helm uninstall lymen -n lymen. Algunos recursos del operador se van recién al quitar sus definiciones del cluster.
Problemas comunes#
| Síntoma | Qué hacer |
|---|---|
| Los pods del agente no arrancan | Revisá que el namespace tenga la política privileged. |
| No veo métricas por pod | Hoy no existen. Solo hay métricas del nodo. |
| Instalé y no llega nada | Revisá ingesta.url, que el Secret tenga la clave token y que los nodos lleguen a esa dirección. |
| La anotación no instrumenta | Reiniciá el pod después de anotarlo y confirmá que el operador esté instalado. |