Parte de la serie: Kubernetes
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:
- Inicia sesión en Grafana
- Haz clic en “Dashboards” (icono de cuadrados en el menú lateral)
- Haz clic en “Browse”
- Explora los dashboards disponibles:
- Kubernetes / Compute Resources / Cluster
- Kubernetes / Compute Resources / Namespace (Pods)
- Kubernetes / Compute Resources / Node (Pods)