Présenté par Polaris pour maintenir les clusters Kubernetes en bonne santé

Remarque perev. : L'original de ce texte a été écrit par Rob Scott, un ingénieur SRE de premier plan chez ReactiveOps, qui est à l'origine du développement du projet annoncé. Nous sommes très proches de l'idée d'une validation centralisée de ce qui est déployé dans Kubernetes, nous suivons donc avec intérêt ces initiatives.



Je suis heureux de présenter Polaris , un projet open source qui aide à maintenir la santé du cluster Kubernetes. Nous avons créé Polaris pour automatiser certaines des meilleures pratiques utilisées par ReactiveOps pour maintenir le fonctionnement sûr et fiable des clusters sur un grand nombre de clients. Il est temps d'ouvrir l'open source.

À maintes reprises, nous sommes devenus témoins de la façon dont des défauts apparemment mineurs dans la configuration ont conduit à de graves problèmes qui empêchaient les ingénieurs de dormir la nuit. Quelque chose de très simple - par exemple, la configuration des demandes de ressources perdue par oubli - pourrait interrompre la mise à l'échelle automatique et même entraîner des charges de travail sans ressources. Auparavant, des erreurs de configuration mineures entraînaient des interruptions de production, mais maintenant Polaris peut les empêcher complètement.

Polaris vous aide à éviter les problèmes de configuration qui affectent la stabilité, la fiabilité, l'évolutivité et la sécurité de vos applications. Il permet d'identifier facilement les faiblesses des configurations de déploiement et d'éviter de futurs problèmes. Avec Polaris, vous pouvez dormir profondément, sachant que les applications sont déployées à l'aide d'un ensemble de normes bien testées.

Polaris a deux composants clés:

  1. un tableau de bord qui fournit des informations sur la façon dont les déploiements existants dans le cluster sont correctement configurés;
  2. Un webhook de test expérimental qui empêche le déploiement de déploiements qui ne répondent pas à la norme acceptée.

Tableau de bord Polaris


Le panel de Polaris a été créé pour une occasion simple et claire de voir l'état actuel de deployment'ov à Kubernetes et de recevoir des recommandations d'amélioration. Il fournit une vue d'ensemble complète du cluster et décompose également les résultats en catégories, espaces de noms et déploiement.



Les normes Polaris par défaut sont assez élevées, alors ne soyez pas surpris si la note est inférieure à ce que vous attendiez. L'objectif principal de Polaris est de fixer des normes élevées et de viser une excellente configuration par défaut. Si la configuration proposée semble trop rigide, elle peut être corrigée pendant le processus de configuration de déploiement, en optimisant pour des charges de travail spécifiques.

Dans le cadre de la publication Polaris, nous avons décidé non seulement de présenter l'outil lui-même, mais également de décrire en détail les tests qui y sont inclus. Chaque vérification comprend un lien vers la documentation pertinente, qui explique pourquoi nous considérons cela important, et fournit des liens vers des ressources supplémentaires sur ce sujet.

Webhook Polaris


Si le tableau de bord vous aide à obtenir une vue d'ensemble de la configuration de déploiement actuelle, le hook Web garantit la conformité aux normes pour tous les déploiements qui ne seront déployés que dans le cluster.

Une fois les problèmes identifiés par le tableau de bord résolus, vous pouvez utiliser le web hook pour que la configuration ne tombe plus jamais en dessous de la norme établie. Un hook Web ne permettra pas le déploiement dans un cluster de déploiements dont la configuration contient des écarts importants (du niveau «erreur»).

Le potentiel de ce crochet Web est encourageant, mais des tests rigoureux sont encore nécessaires pour le préparer à la production. Il s'agit actuellement d'une fonctionnalité expérimentale et fait partie d'un tout nouveau projet Open Source. Comme il peut interférer avec les mises à jour du déploiement, utilisez-le avec prudence.

Pour commencer


J'espère que puisque vous lisez toujours cette annonce, Polaris est un outil qui pourrait vous être utile. Vous voulez essayer Dashboard vous-même? Le déploiement d'un panneau dans un cluster est très simple. Il est installé avec des droits minimaux (lecture seule) et toutes les données restent à l'intérieur. Pour déployer Dashboard à l'aide de kubectl, procédez comme suit:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml 

Vous devez maintenant configurer la redirection de port pour accéder au tableau de bord via le port local 8080:

 kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80 

Bien sûr, il existe de nombreuses autres façons d'utiliser et de déployer Polaris, notamment en utilisant Helm. Vous pouvez en savoir plus à ce sujet et plus encore à partir du référentiel Polaris sur GitHub .

Ce n'est que le début.


Nous sommes heureux d'avoir déjà réussi à nous intégrer à Polaris, mais l'histoire ne s'arrête pas là. Il y a beaucoup de nouveaux tests sur la façon que j'aimerais ajouter afin d'étendre la fonctionnalité. Nous recherchons également le meilleur moyen d'implémenter les règles de vérification des exceptions au niveau de l'espace de noms ou des ressources. Si vous souhaitez plus d'informations sur nos plans, consultez la feuille de route .

Si vous avez l'impression que Polaris pourrait être utile - veuillez prendre un moment pour l'essayer. Nous sommes heureux d'accepter toutes idées, commentaires, questions ou demandes de tirage. Vous pouvez nous contacter sur le site du projet , sur GitHub ou sur Twitter .

PS du traducteur


Lisez aussi dans notre blog:

Source: https://habr.com/ru/post/fr454706/


All Articles