Eingeführt von Polaris, um Kubernetes-Cluster gesund zu halten

Hinweis perev. : Das Original dieses Textes wurde von Rob Scott geschrieben, einem führenden SRE-Ingenieur bei ReactiveOps, der hinter der Entwicklung des angekündigten Projekts steht. Wir sind der Idee einer zentralisierten Validierung der in Kubernetes bereitgestellten Inhalte sehr nahe und verfolgen diese Initiativen mit Interesse.



Ich freue mich, Polaris vorstellen zu können, ein Open-Source-Projekt, das dazu beiträgt, den Zustand des Kubernetes-Clusters zu erhalten. Wir haben Polaris entwickelt, um einige der von ReactiveOps verwendeten Best Practices zu automatisieren und den sicheren und zuverlässigen Betrieb von Clustern auf einer großen Anzahl von Clients aufrechtzuerhalten. Es ist Zeit für Open Source.

Immer wieder haben wir gesehen, wie scheinbar geringfügige Fehler in der Konfiguration zu ernsthaften Problemen führten, die Ingenieure daran hinderten, nachts zu schlafen. Etwas ganz Einfaches - zum Beispiel die durch Vergesslichkeit verlorene Konfiguration von Ressourcenanforderungen - kann die automatische Skalierung unterbrechen und sogar dazu führen, dass Workloads ohne Ressourcen bleiben. Früher führten kleinere Konfigurationsüberschreitungen zu Produktionsunterbrechungen, jetzt kann Polaris diese vollständig verhindern.

Mit Polaris können Sie Konfigurationsprobleme vermeiden, die sich auf die Stabilität, Zuverlässigkeit, Skalierbarkeit und Sicherheit Ihrer Anwendungen auswirken. Es macht es einfach, Schwachstellen in Bereitstellungskonfigurationen zu identifizieren und zukünftige Probleme zu vermeiden. Mit Polaris können Sie ruhig schlafen, da Sie wissen, dass Anwendungen mit einer Reihe bewährter Standards bereitgestellt werden.

Polaris besteht aus zwei Hauptkomponenten:

  1. ein Dashboard, das Informationen darüber enthält, wie korrekt die im Cluster vorhandenen Bereitstellungen konfiguriert sind;
  2. Ein experimenteller Test-Webhook, der die Einführung von Bereitstellungen verhindert, die nicht dem akzeptierten Standard entsprechen.

Polaris Armaturenbrett


Das Panel in Polaris wurde erstellt, um eine einfache und übersichtliche Möglichkeit zu bieten, den aktuellen Stand der Bereitstellung in Kubernetes anzuzeigen und Empfehlungen für Verbesserungen zu erhalten. Es bietet einen vollständigen Überblick über den Cluster und unterteilt die Ergebnisse in Kategorien, Namespaces und Bereitstellung.



Die Standard-Polaris-Standards sind ziemlich hoch. Seien Sie also nicht überrascht, wenn die Bewertung niedriger ist als erwartet. Das Hauptziel von Polaris ist es, hohe Standards zu setzen und eine hervorragende Standardkonfiguration anzustreben. Wenn die vorgeschlagene Konfiguration zu starr erscheint, kann sie während des Konfigurationsprozesses für die Bereitstellung behoben werden, um sie für bestimmte Workloads zu optimieren.

Im Rahmen der Polaris-Veröffentlichung haben wir beschlossen, nicht nur das Tool selbst vorzustellen, sondern auch die darin enthaltenen Tests detailliert zu beschreiben. Jede Prüfung enthält einen Link zur entsprechenden Dokumentation, in der erläutert wird, warum wir dies für wichtig halten, und Links zu zusätzlichen Ressourcen zu diesem Thema.

Polaris Webhook


Wenn Sie mit dem Dashboard einen Überblick über die aktuelle Bereitstellungskonfiguration erhalten, stellt der Web-Hook sicher, dass die Standards für alle Bereitstellungen eingehalten werden, die nur im Cluster bereitgestellt werden.

Sobald die vom Dashboard erkannten Probleme behoben wurden, können Sie den Web-Hook verwenden, damit die Konfiguration nie wieder unter den festgelegten Standard fällt. Ein Web-Hook erlaubt keine Bereitstellung in einem Cluster von Bereitstellungen, deren Konfiguration erhebliche Abweichungen (von der Fehlerstufe) enthält.

Das Potenzial dieses Web-Hooks ist ermutigend, aber es sind noch strenge Tests erforderlich, um ihn für die Produktion vorzubereiten. Dies ist derzeit eine experimentelle Funktion und Teil eines völlig neuen Open Source-Projekts. Verwenden Sie es mit Vorsicht, da dies die Bereitstellung von Updates beeinträchtigen kann.

Erste Schritte


Ich hoffe, dass Polaris ein Werkzeug ist, das Sie vielleicht nützlich finden, da Sie diese Ankündigung noch lesen. Möchten Sie Dashboard selbst ausprobieren? Das Bereitstellen eines Panels in einem Cluster ist sehr einfach. Es wird mit minimalen Rechten installiert (schreibgeschützt) und alle Daten bleiben im Inneren. Gehen Sie folgendermaßen vor, um das Dashboard mit kubectl bereitzustellen:

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

Jetzt müssen Sie die Portweiterleitung konfigurieren, um über den lokalen Port 8080 auf das Dashboard zuzugreifen:

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

Natürlich gibt es viele andere Möglichkeiten, Polaris zu verwenden und einzusetzen, einschließlich der Verwendung von Helm. Weitere Informationen hierzu und mehr finden Sie im Polaris-Repository auf GitHub .

Dies ist nur der Anfang.


Wir freuen uns, dass wir es bereits geschafft haben, uns in Polaris zu integrieren, aber die Geschichte endet nicht dort. Es gibt viele neue Tests auf dem Weg, die ich hinzufügen möchte, um die Funktionalität zu erweitern. Wir suchen auch nach dem besten Weg, um die Regeln für die Ausnahmeprüfung auf Namespace- oder Ressourcenebene zu implementieren. Wenn Sie weitere Informationen zu unseren Plänen wünschen, lesen Sie die Roadmap .

Wenn Sie den Eindruck haben, dass Polaris nützlich sein könnte, nehmen Sie sich bitte einen Moment Zeit, um es zu versuchen. Wir nehmen gerne Ideen, Feedback, Fragen oder Pull-Anfragen entgegen. Sie können uns auf der Projektwebsite , auf GitHub oder auf Twitter kontaktieren.

PS vom Übersetzer


Lesen Sie auch in unserem Blog:

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


All Articles