Kubernetes

Serveur de métriques Kubernetes

Serveur de métriques Kubernetes
Avec un système aussi grand et compliqué que Kubernetes, la surveillance peut souvent devenir gênante.La surveillance est toujours une affaire délicate car d'une part, vous ne voulez pas manquer des bogues et des échecs critiques, d'autre part, vous ne voulez pas vous noyer dans un océan d'erreurs triviales déclenchées non pas à cause de votre application ni affectant en tout cas.

Avec sa propre pile de planificateurs et de contrôleurs, Kubernetes peut récupérer des pannes mineures, des nœuds défaillants ou des applications qui se bloquent depuis l'intérieur de leurs pods. Cependant, si de nombreux plantages se produisent, cela n'a peut-être rien à voir avec l'infrastructure mais tout à voir avec votre application que Kubernetes peut essayer de redémarrer encore et encore, mais comme le code est en cause, le défaut persistera et peut même passer inaperçu.

Le genre de bogues qui passent inaperçus la plupart du temps sont ceux où les applications ne se bloquent pas mais finissent par utiliser les ressources système et nuire aux clusters sur toutes les performances. Ce sont les cas particulièrement désagréables et Kubernetes Metrics Server peut être un outil utile pour les surveiller.

Le projet fait officiellement partie du projet Kubernetes mais n'est pas pré-activé dans la plupart des distributions certifiées Kubernetes. Il comporte deux parties importantes qui valent la peine d'être discutées sur l'API de métriques et le serveur de métriques lui-même. Mais commençons par le provisionner sur notre cluster Kubernetes (K8).

Une configuration expérimentale de Kubernetes

Depuis juillet 2018, Docker pour Mac et Windows sont tous deux livrés avec une implémentation certifiée Kubernetes de K8 lui-même. C'est aussi simple que d'installer K8 sur une distribution Linux. Vous pouvez aller dans Docker Settings et si l'instance Docker est à jour, vous trouverez un onglet Kubernetes dans le menu. Activez simplement Kubernetes au lieu de Docker Swarm et vous aurez un cluster à nœud unique opérationnel prêt pour les expérimentations.

Ensuite, nous avons besoin d'un ensemble simple d'applications opérationnelles pour notre cas d'utilisation. Créez un dossier appelé Déploiements et à l'intérieur créons un nginx-déploiement.yaml fichiers qui déploieraient des pods Nginx sans état.

apiVersion : apps/v1 # pour les versions antérieures à 1.9.0 utiliser des applications/v1beta2
genre : Déploiement
métadonnées :
nom : nginx-deployment
spécification :
sélecteur:
matchÉtiquettes :
application : nginx
répliques : 2 # indique au déploiement d'exécuter 2 pods correspondant au modèle
modèle:
métadonnées :
Étiquettes:
application : nginx
spécification :
conteneurs :
- nom : nginx
image : nginx:1.7.9
ports :
- conteneurPort: 80

Enregistrez le fichier et dans le même répertoire où se trouve ce fichier, exécutez la commande :

$ kubectl create -f nginx-deployment.yaml

Nous devrons peut-être attendre quelques minutes pour permettre à Kubernetes de télécharger les images de conteneur, de provisionner les conteneurs et de faire un peu de comptabilité. Une fois cela fait, vous pouvez voir la liste des pods comme :

$ kubectl obtenir des pods

Comme vous pouvez le voir, nous avons deux instances du pod, comme le .yaml avait prescrit.

Maintenant que nous avons quelque chose à surveiller, nous devons activer Metrics Server. Tout d'abord, vérifiez la version de Kubernetes que vous exécutez. Si la version est 1.8 ou supérieur, nous exécuterions un déploiement différent et s'il est de 1.7 puis on recourt à l'héritage :

$ version kubectl

Vous pouvez obtenir l'image officielle et commencer en clonant ce référentiel GitHub, puis à l'intérieur de la racine du référentiel, exécutez le kubectl créer -f avec le bon .yaml selon la version K8 que vous utilisez.

$ git clone https://github.com/kubernetes-incubator/metrics-server.git
 
$ cd metrics-server
# Si vous utilisez Kubernetes version 1.8 ou plus
$ kubectl create -f deploy/1.8+/
# Si la version est 1.7, alors
$ kubectl create -f deploy/1.7/

Donnez un moment aux kubernetes pour télécharger les images et faire tourner le serveur de métriques. Cela peut prendre quelques minutes. Une fois cela fait, vous êtes maintenant prêt à exécuter le serveur de métriques. La commande de base est inspirée de la Haut commande qui est souvent exécutée pour surveiller un système Linux. Mais il a deux variantes une pour vérifier le utilisations des ressources sur le calcul nœuds et deuxièmement pour évaluer la ressource consommée par le déployé gousses et le. Voici comment voir ces deux détails :

$ kubectl nœud supérieur
$ kubectl top pod

Vous pouvez voir à quel point un pod pèse sur votre système en termes de mémoire ou de temps CPU et en utilisant l'API Metrics, vous pouvez également configurer des alertes en fonction.

Où ira-t-il à partir d'ici?

Les cas d'utilisation émergents du serveur de métriques vont être cruciaux dans l'avenir de Kubernetes. Ce projet est encore en version 0.2.x, une fois arrivé à maturité et intégré dans l'architecture Kubernetes traditionnelle, il collectera des données importantes pour le planificateur, l'aidant à allouer efficacement des pods aux nœuds de manière beaucoup plus efficace.

De même, Horizontal Pod Autoscaler bénéficiera grandement du projet et vous aidera à augmenter ou à réduire les ressources afin que les ressources soient utilisées de manière optimale par les applications.

Les références

  1. Déploiements Nginx
  2. Serveur de métriques Kubernetes
  3. Les documents de conception pour l'API Metrics peuvent être trouvés ici et similaires, vous pouvez trouver des informations sur le serveur Metrics ici.
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...