Cómo supervisar el clúster de Kubernetes con Prometheus y Grafana
Si leíste el artículo anterior sobre kops y cómo hacer un clúster, este artículo será una continuación del mismo. Necesitará el clúster de kubernetes en el que instalará Prometheus y Grafana. Sin embargo, es posible que deba actualizar este clúster, y mostraré cómo en este artículo.
Actualización del clúster con Kops
Para que Prometheus funcione correctamente, necesitamos Kubernetes 1.7.3 y, de hecho, lo actualizaremos a 1.7.5.
Para configurar la actualización, necesitamos editar yaml del clúster con el siguiente comando:
kops edit cluster
Luego cambiaremos la línea que dice kubernetesVersion para que se vea así:
kubernetesVersion: 1.7.5
A continuación, probaremos la configuración para su validez.
kops update cluster
Y luego actualice el clúster ejecutando el mismo comando con la bandera – sí.
kops update cluster --yes
Una vez que los kops terminen este proceso, probablemente también se le pedirá que realice una actualización continua. Puedes hacerlo con los siguientes comandos:
kops rolling-update cluster
Nuevamente, debe decir: sí para confirmar los cambios.
kops rolling-update cluster --yes
Esto reiniciará todas las instancias de AWS y, cuando estén respaldadas, querrá validar el clúster nuevamente para ver si todo salió bien.
kops validate cluster
Configuración de Prometheus y Grafana
Hemos terminado con la actualización del clúster y ahora necesitamos instalar prometheus y grafana encima. Comenzaremos clonando el repositorio.
git clone https://github.com/camilb/prometheus-kubernetes.git
A continuación, cambiaremos el directorio a él.
cd prometheus-kubernetes/
Editaremos el archivo de servicio de prometheus para cambiar de ClusterIP a LoadBalancer
nano k8s/prometheus/prometheus.svc.ss.yaml
Simplemente busque clusterIP y cambie a LoadBalancer, para que se vea similar (pero no exactamente) a esto:
apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' labels: name: prometheus name: prometheus namespace: monitoring spec: selector: app: prometheus type: LoadBalancer ports: - name: prometheus protocol: TCP port: 9090 targetPort: 9090
También editaremos el servicio grafana, pero en este caso necesitamos agregar el campo de tipo debajo del campo de especificaciones.
nano k8s / grafana / grafana.svc.de.yaml
spec:
type: LoadBalancer
ports:
- port: 3000
Now we are ready to go, Execute ./init.sh command and work the prompt as follows
Enter Grafana version [4.5.0]: Enter Prometheus version [v2.0.0-beta.3]: Enter Alert Manager version [v0.8.0]: Enter Node Exporter version [v0.14.0]: Enter Kube State Metrics version [v1.0.1]: Enter Dockerhub username []: yourdockerhubusername Do you want to set up an SMTP relay? Y/N [N]: n Do you want to set up slack alerts? Y/N [N]: n Do you want to monitor EC2 instances in your AWS account? Y/N [N]: n Creating 'monitoring' namespace. namespace "monitoring" created Using RBAC? [y/N]: y
Ahora espere unos minutos y luego busque los servicios de grafana y prometheus. Cuando haya terminado, debe obtener la dirección de LoadBalancer para acceder a la interfaz de usuario web. Puedes hacerlo con este comando
kubectl describe svc -n monitoring prometheus grafana
Las líneas que está buscando son LoadBalancer Ingress y Port. El puerto para grafana es 3000 y para prometheus es 9090. Los necesita para formar la URL junto con el balanceador de carga. Por ejemplo como este
La contraseña de inicio es admin en el nombre de usuario admin. Probablemente querrás cambiar eso. Como vemos, prometheus está monitoreando felizmente nuestro clúster de kubernetes y enviando datos al panel de Grafana. Cuando decida eliminar grafana y prometheus, puede hacerlo ejecutando el script ./remove.sh mientras está en el repositorio. Cómo eliminar el clúster de kops ya se mostró en el artículo anterior, pero digamos de nuevo, aquí está el comando
kops delete cluster --name cluster2.k8s.local --yes
Por supuesto, cambie el nombre del clúster por usted. Con eso concluimos este tutorial y les deseamos un buen día.