"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Implementación de una pila de monitoreo con Kubernetes, Helm e Ingress

Implementación de una pila de monitoreo con Kubernetes, Helm e Ingress

Publicado el 2024-11-08
Navegar:338

Deploying a Monitoring Stack with Kubernetes, Helm, and Ingress

Observar y gestionar el rendimiento de un clúster de Kubernetes es crucial para mantener el estado de las aplicaciones, identificar problemas y garantizar una alta disponibilidad. Lo guiaré en la configuración de una solución de monitoreo integral usando kubectl y Helm, implementando Grafana, Loki y Prometheus en su clúster y configurando Ingress para acceso externo.

Cubriremos los siguientes pasos clave:

  1. Aplicar un espacio de nombres de Kubernetes para el monitoreo.
  2. Instalar Helm y configurar los repositorios necesarios.
  3. Implementando Loki, Prometheus y Grafana usando Helm.
  4. Aplicar reglas de Ingress para exponer los servicios externamente.

Requisitos previos
Antes de comenzar, asegúrese de tener lo siguiente:

  1. Un clúster de Kubernetes con kubectl configurado.
  2. Helm instalado en su máquina local.
  3. Acceso adecuado para aplicar configuraciones YAML e instalar gráficos.

Paso 1: Crear un espacio de nombres de monitoreo

Los espacios de nombres te ayudan a dividir y organizar de forma lógica tus recursos de Kubernetes. Para evitar conflictos y mantener separados los recursos de monitoreo, crearemos un espacio de nombres dedicado para las herramientas de monitoreo.

1. Aplique el espacio de nombres de monitoreo: guarde el siguiente contenido en un archivo monitoring-namespace.yml:

Versión api: v1
tipo: Espacio de nombres
metadatos:
nombre: seguimiento
etiquetas:
app.kubernetes.io/name: monitoreo
app.kubernetes.io/instance: monitoreo

2. Aplicar el espacio de nombres usando kubectl:

kubectl apply -f monitoreo-namespace.yml

Este comando crea un nuevo espacio de nombres llamado monitoreo en su clúster de Kubernetes.

Paso 2: Instale Helm y agregue el repositorio de Grafana
Helm, el administrador de paquetes de Kubernetes, facilita la implementación de aplicaciones complejas como Grafana, Loki y Prometheus. A continuación se explica cómo instalar Helm y configurar el repositorio necesario.

  1. Instalar Helm (si aún no está instalado):

sudo snap install helm --clásico

Este comando instala Helm usando Snap, un sistema de administración de paquetes para Linux.

  1. Agregar el repositorio de gráficos de Grafana Helm:

repositorio de helm agregar grafana https://grafana.github.io/helm-charts

  1. Actualizar los repositorios de Helm:

actualización del repositorio de helm

Esto garantiza que Helm tenga los gráficos más recientes del repositorio de Grafana.

Paso 3: Implementar Loki, Prometheus y Grafana con Helm

Ahora que Helm está instalado y configurado, implementaremos Loki, Prometheus y Grafana usando el gráfico de Grafana Helm.

1. Ejecute el comando de instalación de Helm:

actualización de helm --instalar loki --namespace=monitoreo grafana/loki-stack \
--set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false,loki.persistence.enabled=true,loki.persistence.storageClassName=gp2 ,loki.persistence.size=100Gi --establecer nodeSelector.name=node.kubernetes.io/description=all_production

R: Grafana: **Esto habilita Grafana, la herramienta del panel de monitoreo, dentro del gráfico Helm.
**B: Prometheus: **Prometheus está habilitado para recopilar métricas, mientras que los volúmenes persistentes para Alertmanager y el servidor Prometheus están deshabilitados para simplificar la configuración del almacenamiento.
**C: Loki:
Loki, la herramienta de agregación de registros, está habilitada con almacenamiento de volumen persistente de 100 Gi utilizando la clase de almacenamiento gp2.

El indicador --install garantiza que la pila esté instalada si no se ha implementado previamente. El indicador --upgrade actualiza la pila a la última versión si ya está instalada.

2. Verificar la instalación: Después de una instalación exitosa, verifique el estado de los pods que se ejecutan en el espacio de nombres de monitoreo:

kubectl obtiene pods -n monitoreo

Deberías ver pods para Grafana, Prometheus, Loki y Promtail (que envía registros a Loki).

Paso 4: Configurar Ingress para acceso externo

Para acceder a Grafana, Prometheus o Loki desde fuera de su clúster, debe configurar un recurso de Ingress. Esto permite el acceso HTTP/S externo a los servicios de monitoreo.

*1. Cree un recurso de ingreso: guarde el siguiente ejemplo en un archivo monitoring-ingress.yml:
*

Versión api: networking.k8s.io/v1
tipo: ingreso
metadatos:
nombre: monitoreo-ingreso
espacio de nombres: monitoreo
anotaciones:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: letsencrypt
especulación:
tls:
- anfitriones:

- tu-dominio.com
nombresecreto: nombre del certificado
normas:
- anfitrión: tu-dominio.com
http:
rutas:
- camino: /
tipo de ruta: Prefijo
backend:
servicio:
nombre: loki-grafana
puerto:
número: 80

Esta configuración de Ingress configura el enrutamiento para Grafana, Prometheus y Loki bajo el nombre de dominio {tu-dominio.com}. Deberá reemplazar your-domain.com con su dominio real y configurar DNS para que apunte a la IP externa de su clúster.

2. Aplicar el recurso de ingreso:

kubectl aplicar -f monitoreo-ingress.yml

Una vez aplicado, el controlador de Ingress enrutará el tráfico a los servicios apropiados según el nombre de host.

  1. Verificar la configuración de Ingress: verifique el estado de su recurso de Ingress para asegurarse de que esté configurado correctamente:

kubectl obtiene ingreso -n monitoreo

Asegúrese de que su columna DIRECCIÓN tenga una IP externa para que los servicios sean accesibles externamente.

Paso 5: Accede al Panel de Monitoreo

Una vez que Ingress esté configurado correctamente y DNS apunte a su clúster, podrá acceder a Grafana, Prometheus y Loki.

Conclusión

Con solo unos pocos comandos, implementó con éxito una pila de monitoreo completa usando Helm en su clúster de Kubernetes. Al aprovechar los gráficos de Helm, simplifica la implementación de aplicaciones complejas como Grafana, Loki y Prometheus y, al mismo tiempo, integra Ingress para un fácil acceso. Ahora tienes una poderosa configuración de observabilidad que te permite monitorear registros y métricas en tiempo real, lo que te ayuda a administrar y optimizar tus aplicaciones Kubernetes de manera más efectiva.

Esta implementación basada en Helm garantiza la escalabilidad y simplifica las actualizaciones o cambios de configuración, lo que facilita la gestión de la observabilidad en un entorno de producción.

Declaración de liberación Este artículo se reproduce en: https://dev.to/seewhy/deploying-a-monitoring-stack-with-kubernetes-helm-and-ingress-cp5?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3