Polaris introduit pour maintenir les clusters Kubernetes en bonne santé

Noter. trad.: L'original de ce texte a été rédigé par Rob Scott, l'un des principaux ingénieur SRE chez ReactiveOps, qui est à l'origine du développement du projet annoncé. L'idée d'une validation centralisée de ce qui est déployé sur Kubernetes nous est très proche, nous suivons donc de telles initiatives avec intérêt.

Polaris introduit pour maintenir les clusters Kubernetes en bonne santé

Heureux de vous présenter Polaris est un projet open source qui permet de maintenir la santé d'un cluster Kubernetes. Nous avons créé Polaris pour automatiser certaines des meilleures pratiques utilisées dans ReactiveOps afin de garantir un fonctionnement sûr et fiable des clusters pour un grand nombre de clients. Il est temps d'ouvrir le code en source.

À maintes reprises, nous avons constaté que des erreurs de configuration apparemment mineures conduisaient à des problèmes majeurs qui empêchaient les ingénieurs de dormir la nuit. Quelque chose de très simple - par exemple, la configuration des demandes de ressources qui ont été oubliées pour cause d'oubli (demandes de ressources) – pourrait interrompre la mise à l’échelle automatique et même conduire à laisser les charges de travail sans ressources. Si auparavant des erreurs mineures dans la configuration entraînaient des interruptions de production, Polaris vous permet désormais de les éviter complètement.

Polaris vous aide à éviter les problèmes de configuration qui ont un impact sur la stabilité, la fiabilité, l'évolutivité et la sécurité de vos applications. Il facilite l'identification des failles dans les configurations de déploiement et évite de futurs problèmes. Avec Polaris, vous pouvez dormir sur vos deux oreilles en sachant que vos applications sont déployées à l'aide d'un ensemble de normes bien testées.

Polaris se compose de deux éléments clés :

  1. un panneau de surveillance qui fournit des informations sur la configuration des déploiements existants dans le cluster ;
  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 tableau de bord Polaris a été créé pour fournir un moyen simple et visuel de voir l'état actuel des déploiements Kubernetes et d'obtenir des recommandations d'amélioration. Il fournit un aperçu complet du cluster et répartit également les résultats par catégorie, espace de noms et déploiement.

Polaris introduit pour maintenir les clusters Kubernetes en bonne santé

Les normes par défaut de Polaris sont assez élevées, alors ne soyez pas surpris si votre score est inférieur à ce à quoi vous vous attendiez. L'objectif principal de Polaris est d'établir des normes élevées et de s'efforcer d'obtenir une excellente configuration par défaut. Si la configuration proposée semble trop rigide, elle peut être corrigée lors du processus de configuration du déploiement, en l'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 revue comprend un lien vers la documentation connexe, qui explique pourquoi nous pensons qu'elle est importante et fournit des liens vers des ressources supplémentaires sur le sujet.

Webhook Polaris

Si le tableau de bord permet d'avoir une vue d'ensemble de la configuration actuelle des déploiements, alors le webhook garantit la conformité aux normes pour tous les déploiements qui seront déployés sur le cluster.

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

Le potentiel de ce webhook est passionnant, mais il nécessitera encore des tests approfondis pour être considéré comme prêt pour la production. Il s'agit actuellement d'une fonctionnalité expérimentale et fait partie d'un tout nouveau projet Open Source. Puisqu'il peut interférer avec la mise à jour des déploiements, utilisez-le avec prudence.

Mise en route

J'espère que puisque vous lisez encore cette annonce, Polaris est un outil qui pourrait vous être utile. Vous souhaitez essayer Dashboard par vous-même ? Déployer un panel 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, exécutez :

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 apprendre davantage à ce sujet et bien plus encore sur Dépôt Polaris sur GitHub.

Ce n'est que le début.

Nous sommes enthousiasmés par ce que Polaris a construit jusqu'à présent, mais l'histoire ne s'arrête pas là. De nombreux nouveaux tests sont en cours que nous aimerions ajouter pour étendre les fonctionnalités. Nous recherchons également une meilleure façon d’implémenter des 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 feuille de route.

Si vous avez l’impression que Polaris pourrait être utile, prenez le temps de l’essayer. Nous accepterons volontiers toutes les idées, commentaires, questions ou demandes de tirage. Vous pouvez nous contacter au site du projetdans GitHub ou Twitter.

PS du traducteur

A lire aussi sur notre blog :

Source: habr.com

Ajouter un commentaire