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:
Requisitos previos
Antes de comenzar, asegúrese de tener lo siguiente:
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.
sudo snap install helm --clásico
Este comando instala Helm usando Snap, un sistema de administración de paquetes para Linux.
repositorio de helm agregar grafana https://grafana.github.io/helm-charts
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.
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.
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