Kubernetes クラスターを健全に保つために導入された Polaris

ノート。 翻訳。: このテキストの原文は、発表されたプロジェクトの開発を担当する ReactiveOps のリード SRE エンジニアである Rob Scott によって書かれました。 私たちは、Kubernetes にデプロイされたものを一元的に検証するというアイデアに非常に近づいているため、そのような取り組みに興味を持って注目しています。

Kubernetes クラスターを健全に保つために導入された Polaris

ご紹介できて嬉しいです ポラリス は、Kubernetes クラスターの「健全性」を維持するのに役立つオープンソース プロジェクトです。 私たちは、多数のクライアントに対してクラスターを安全かつ確実に実行し続けるために、ReactiveOps で使用されるベスト プラクティスの一部を自動化するために Polaris を構築しました。 オープンソースの時代が来ました。

私たちは、一見小さな構成上の欠陥が、エンジニアの夜の睡眠を妨げる重大な問題につながる様子を何度も見てきました。 非常に単純なもの - たとえば、物忘れのために見落とされたリソースのリクエストの構成など (リソースリクエスト) - 自動スケーリングが壊れ、ワークロードがリソースなしのままになる可能性もあります。 以前は、軽微な構成の見落としが生産の中断につながっていましたが、Polaris ではそれを完全に防止できるようになりました。

Polaris は、アプリケーションの安定性、信頼性、スケーラビリティ、セキュリティに影響を与える構成の問題を回避するのに役立ちます。 これにより、展開構成の弱点を簡単に特定し、将来の問題を防ぐことができます。 Polaris を使用すると、十分にテストされた一連の標準を使用してアプリケーションがデプロイされていることを認識して、ぐっすり眠ることができます。

Polaris は XNUMX つの主要なコンポーネントで構成されています。

  1. クラスター内の既存のデプロイメントがどの程度適切に構成されているかに関する情報を提供するダッシュボード。
  2. 受け入れられた標準を満たさない展開がロールアウトされるのを防ぐ実験的なテスト Webhook。

ポラリスダッシュボード

Polaris ダッシュボードは、Kubernetes デプロイメントの現在のステータスを確認し、改善のための推奨事項を得る簡単で視覚的な方法を提供するために作成されました。 これはクラスターの完全な概要を提供し、結果をカテゴリ、名前空間、およびデプロイメントごとに分類します。

Kubernetes クラスターを健全に保つために導入された Polaris

Polaris が設定したデフォルトの基準は非常に高いため、スコアが予想より低くても驚かないでください。 Polaris の主な目標は、高い基準を設定し、優れたデフォルト構成を追求することです。 提案された構成が厳格すぎると思われる場合は、展開構成プロセス中に修正して、特定のワークロードに合わせて最適化できます。

Polaris 出版物の一環として、ツール自体を紹介するだけでなく、ツールに含まれるテストについても詳細に説明することにしました。 各レビューには、それが重要であると考える理由を説明する関連ドキュメントへのリンクと、そのトピックに関する追加リソースへのリンクが含まれています。

Polaris Webhook

ダッシュボードがデプロイメントの現在の構成の概要を把握するのに役立つ場合、Webhook はクラスターにのみロールアウトされるすべてのデプロイメントに標準を適用します。

ダッシュボードで特定された問題が修正された後は、Webhook を使用して、設定が確立された標準を再び下回らないようにすることができます。 Webhook では、構成に重大な逸脱 (「エラー」レベル) が含まれるデプロイメントをクラスターにデプロイすることはできません。

この Webhook の可能性は心強いものですが、運用準備が整っているとみなされるには、まだ広範なテストが必要です。 これは現在実験的な機能であり、まったく新しいオープンソース プロジェクトの一部です。 展開の更新を妨げる可能性があるため、注意して使用してください。

はじめに

この発表を読んでいる間、Polaris が便利なツールであることを願っています。 ダッシュボードを自分で試してみませんか? クラスター内にパネルをデプロイするのは非常に簡単です。 最小限の権限 (読み取り専用) でインストールされ、すべてのデータが内部に残ります。 kubectl を使用してダッシュボードをデプロイするには、次を実行します。

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

次に、ローカル ポート 8080 経由でダッシュボードにアクセスするために、ポート転送を設定する必要があります。

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

もちろん、Helm を含め、Polaris を使用および展開する方法は他にもたくさんあります。 このことやさらに多くのことを次のサイトから学ぶことができます GitHub 上の Polaris リポジトリ.

これは始まりにすぎない。

Polaris にすでに組み込まれているものには満足していますが、話はそこで終わりません。 機能を拡張するために追加したい新しいテストがたくさんあります。 また、名前空間またはリソース レベルで例外チェック ルールを実装するより良い方法も探しています。 プランの詳細については、をご覧ください。 ロードマップ.

ポラリスが使えそうな印象を持った方は、ぜひ試してみてください。 アイデア、フィードバック、質問、プル リクエストを歓迎します。 までお問い合わせください。 プロジェクトサイトGitHubの または Twitter.

翻訳者からの追伸

私たちのブログもお読みください:

出所: habr.com

コメントを追加します