Alex Sarmiento
ES / EN

4. Monitorización del cluster

Vamos a instalar Prometheus y Grafana para monitorizar nuestro cluster.

4.1 Instalar Helm

En el nodo master, instala Helm:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

4.2 Instalar Prometheus y Grafana usando Helm

# Agregar el repositorio de Prometheus
sudo helm repo add prometheus-community https://prometheus-community.github.io/helm-charts --kubeconfig /etc/rancher/k3s/k3s.yaml
sudo helm repo update --kubeconfig /etc/rancher/k3s/k3s.yaml

# Crear namespace para monitorización
sudo kubectl create namespace monitoring --kubeconfig /etc/rancher/k3s/k3s.yaml

# Instalar Prometheus y Grafana
sudo helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --kubeconfig /etc/rancher/k3s/k3s.yaml

4.3 Configurar un Ingress para Grafana (opcional)

Si deseas acceder a Grafana sin usar port-forward, puedes configurar un Ingress:

# Instalar Nginx Ingress Controller
sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml --kubeconfig /etc/rancher/k3s/k3s.yaml

# Esperar a que el controlador esté listo
sudo kubectl wait --namespace ingress-nginx \
  --for=condition=ready pod \
  --selector=app.kubernetes.io/component=controller \
  --timeout=120s \
  --kubeconfig /etc/rancher/k3s/k3s.yaml

# Crear un Ingress para Grafana
cat <<EOF | sudo kubectl apply -f - --kubeconfig /etc/rancher/k3s/k3s.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: grafana-ingress
  namespace: monitoring
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - host: grafana.local
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: prometheus-grafana
            port:
              number: 80
EOF

Añade grafana.local a tu archivo hosts en Windows (C:\Windows\System32\drivers\etc\hosts):

192.168.1.127 grafana.local

Ahora podrás acceder a Grafana desde http://grafana.local

  • Usuario por defecto: admin
  • Contraseña por defecto: prom-operator

4.4 Dashboards predefinidos

Prometheus y Grafana ya vienen con dashboards predefinidos para Kubernetes. Puedes explorarlos desde la interfaz de Grafana:

  1. Inicia sesión en Grafana
  2. Haz clic en “Dashboards” (icono de cuadrados en el menú lateral)
  3. Haz clic en “Browse”
  4. Explora los dashboards disponibles:
    • Kubernetes / Compute Resources / Cluster
    • Kubernetes / Compute Resources / Namespace (Pods)
    • Kubernetes / Compute Resources / Node (Pods)