Installez Kubernetes, Prometheus et Grafana en local
Parfois, il peut ĂȘtre utile pour les dĂ©veloppeurs dâavoir des outils de monitoring efficaces, installĂ©s sur son cluster local Kubernetes. Le choix Ă©vident serait dâaller vers Prometheus et Grafana, deux outils trĂšs reconnus.
Et câest lĂ que les ennuis commencent.
Dans cet article, je vais vous montrer comment installer avec succĂšs une plate-forme Kubernetes complĂšte, sur votre machine locale, en particulier sur macOS.
Code source
Tous les scripts sont conservés dans https://github.com/scalastic/local-k8s-installation
Notice
- Cette procĂ©dure est destinĂ©e Ă fonctionner sur macOS mais devrait aussi fonctionner sur nâimporte quel autre hĂŽte. Cependant, je nâai pas Ă©tĂ© en mesure de le tester.
- Les problĂ©matiques sont plus liĂ©es Ă la distribution Kubernetes (Docker Desktop) quâĂ lâOS lui-mĂȘme.
Kubernetes
- Nous utiliserons Docker Desktop qui est livrĂ© avec un cluster Kubernetes prĂȘt Ă lâemploi.
TĂ©lĂ©chargez lâinstallateur Ă https://www.docker.com/products/docker-desktop et suivez les instructions.
Une fois installé, activez kubernetes dans le volet Préférences / Kubernetes / Activer Kubernetes.
Vous devriez maintenant voir tous les composants Docker Desktop dans le volet About inclus Kubernetes:
- Collectez les informations de base de votre cluster pour vérifier que tout fonctionne bien :
- Ou mĂȘme:
Le paramĂštre -A
Depuis Kube 1.14
, nous nâavons plus besoin dâutiliser les --all-namespaces
! Alors ne le faites plusâŠ
Dashboard
Dashboard est une interface utilisateur web de lâAPI k8s et fournit un moyen facile de visualiser et dĂ©boguer les objets kube. Vous pouvez en savoir plus sur Dashboard Ă lâadresse https://github.com/kubernetes/dashboard
Par dĂ©faut, Dashboard est protĂ©gĂ© par un jeton, et chaque fois que vous y accĂ©derez, il vous sera demandĂ© dâen fournir un. Cela peut
vraiment ĂȘtre ennuyeux Ă long terme. Heureusement, Dashboard vous permet de contourner la page de connexion en ajoutant --enable-skip-login
Ă la configuration.
Note
Le fichier de configuration fourni est patché avec cette instruction (ligne 198)
Pour déployer Dashboard - sans authentification - exécutez la commande suivante :
Accédez ensuite à votre tableau de bord depuis votre poste de travail local en créant un canal sécurisé vers votre cluster Kubernetes. Pour faire donc, exécuter la commande suivante:
Lâadresse est Ă prĂ©sent:
Conseils
Je sais alors nâoubliez pas dâenregistrer lâURL!
Vous verrez dâabord cette page de connexion :
Il suffit dâappuyer sur le bouton skip pour contourner lâauthentification.
Metrics Server
Metrics-Server est utilisĂ© pour extraire les mesures des composants k8s et les expose Ă lâAPI k8s. Le repo officiel est https://github.com/kubernetes-sigs/metrics-server
Metrics Server sert Ă mesurer les informations de base : CPU et RAM. Lâimportant est que Horizontal Pod Autoscaler utilise cette API pour collecter des mesures. Il sâagit dâun composant de niveau cluster qui rĂ©colte pĂ©riodiquement les mesures de tous les nĆuds Kubernetes suivis par Kubelet. Une fois installĂ©, Dashboard affiche automatiquement ces mesures.
Note
Pour permettre à Metrics Server de collecter ses données sur https, le script original a été modifié pour accepter les connexions TLS non sécurisées en ajoutant - --kubelet-insecure-tls
at line 133.
Appliquez la configuration en entrant :
Lors du rechargement du Dashboard, vous devriez maintenant voir les utilisations du processeur et de la mĂ©moire (aprĂšs un certain temps) đ
Vous pouvez essayer la section Pods, câest ma prĂ©fĂ©rĂ©e!
Kube State Metrics
Contrairement Ă Metrics Server, Kube State Metrics se concentre sur la gĂ©nĂ©ration de nombreuses mesures Ă partir de lâĂ©tat des objets Kubernetes (par exemple, les mesures basĂ©es sur des Deployments, des Replicas, des Pods, etc.). Pour cela, il gĂšre, en mĂ©moire, une photo des Ă©tats de Kubernetes et gĂ©nĂšre de nouvelles mesures basĂ©es sur celle-ci.
Lâinstallation de Kube State Metrics permet lâaccĂšs Ă ces mesures Ă partir de systĂšmes de surveillance tels que Prometheus, notre prĂ©occupation ici.
Pour installer Kube State Metrics, lancez la commande suivante :
Prometheus
Prometheus est un systĂšme de collecte, dâinterrogation, de surveillance et dâalerte. Il est utile quand il sâagit de :
- Collecter des données identifiées par un nom de métrique
- Stocker les sĂ©ries chronologiques en mĂ©moire et sur disque pour plus dâefficacitĂ©
- Lancer des notifications et des alertes en fonction des requĂȘtes de donnĂ©es
La documentation complĂšte est accessible Ă partir de https://prometheus.io.
Les dĂ©veloppeurs de Prometheus fournissent des binaires et des images Docker des composants de Prometheus. Avec un peu dâhuile de coude, il est possible de crĂ©er un fichier de configuration k8s avec tout ce dont nous avons besoin : accĂšs aux ressources, rĂŽle dĂ©diĂ©, configuration, dĂ©ploiement et exposition de service.
Pour installer la configuration Prometheus, exécutez la commande :
Vous pouvez accĂ©der Ă lâinterface de Prometheus Ă lâadresse http://localhost:30000/ ⊠mais attendez de voir la suite !
Grafana
Grafana (https://grafana.com/grafana/) vous permet dâ « interroger, visualiser et alerter en fontion des mesures au moyen dâune interface utilisateur puissante » comme le dit le site.
C'est ce que fait déjà Prometheus !?
Clarifions : dans la pratique, vous dĂ©velopperez votre requĂȘte dans Prometheus puis la lancerez dans Grafana.
Pour configurer la source de données Prometheus et installer Grafana, exécutez les commandes :
Grafana va écouter sur http://localhost:3000/. Le logon par défaut est admin / admin.
Importation du dashboard Grafana
Par dĂ©faut, Grafana nâa rien de spĂ©cifique et vous devrez configurer un tableau de bord. Heureusement, vous pouvez en importer un, dĂ©jĂ prĂ©-configurĂ©, via lâinterface de Grafana. La source principale de tableaux de bord se trouve Ă lâadresse https://grafana.com/grafana/dashboards.
Jâen ai fait un spĂ©cifique Ă un cluster kubernetes local, vous le trouverez ici Dashboard model.
Il ressemble Ă cela - comme vous pouvez le voir, lâinterface graphique Grafana offre de nombreuses possibilitĂ©s - contrairement Ă Prometheus:
đšđ»âđ»
Configurer un tableau de bord dans Grafana peut ĂȘtre long et chronophage. La collecte de mesures dĂ©pend de votre hĂŽte, de lâutilisation de VM ou solution de virtualisation et du systĂšme dâexploitation sur votre pod. Vous devrez mettre les mains dans le cambouisâŠ
Eh bien, câest Ă votre tour de jouer avec cette stack maintenant!
CheersâŠ