|
Robustaは、Kubernetesのトラブルシューティング用にPythonで開発されたオープンソースプラットフォームです。監視スタック(Prometheus、Elasticsearchなど)の上に構築され、アラートの発生原因と修正方法を教えてくれます。 Robusta は 3 つの主要部分で構成されており、すべてオープンソースです。
他にもオプションのコンポーネントがいくつかあります。
Robustaは、アプリケーションのデプロイ後に発生するすべての処理を自動化します。DevOps向けのZapier/IFTTTのようなもので、「独自に構築する」のではなく、事前に構築された自動化を重視しています。例えば、以下の自動化では、Podのクラッシュアラートがトリガーされた際にSlackにログを送信します。 トリガー: 各自動化プログラムは 3 つの部分で構成されます。
建築Robusta は Helm 経由でインストールおよび管理できます。 自動化エンジンRobusta の主なコンポーネントは自動化エンジンであり、クラスター内で 2 つの Kubernetes デプロイメントとして実行されます。
パッケージ化された Prometheus スタック (オプション)Robustaには、ベストプラクティスに従ってKubernetesアラートが事前設定された、オプションの組み込みPrometheusスタックが含まれています。すでにkube-prometheus-stackをご利用の場合は、Robustaを指定することができます。 Web UI(オプション)複数のクラスターにわたるすべてのアラートとポッドを監視するための単一の管理パネルを提供する Web UI があります。 CLI(オプション)robusta のコマンドライン ツールには主に 2 つの用途があります。
また、Robusta 自体の開発に役立つ機能もいくつかあります。 ユースケースRobusta はデフォルトで次のアラートとエラーを監視し、いくつかのトラブルシューティングの提案を提供します。 プロメテウスアラート
その他のエラーこれらは、APIServer をリッスンすることによって識別されます。
さらに、WARNING レベル以上のすべての Kubernetes イベント (kubectl get events) が Robusta UI に送信されます。 変更追跡デフォルトでは、Deployment、DaemonSet、StatefulSetへのすべての変更は、Prometheusアラートやその他のバグとの関連付けのため、Robusta UIに送信されます。これらの変更はスパムとみなされるため、デフォルトでは他の受信者(Slackなど)には送信されません。 インストールKubernetes クラスターで Robusta を構成するには、まず Robusta をインストールし、少なくとも 1 つの宛先 (「シンク」) と少なくとも 1 つのソース (「トリガー」) を接続する必要があります。 Robustaを設定するには、Robusta CLIツールをインストールする必要があります。以下のコマンドでインストールできます。 #Python 3.7以降が必要です その後、Slackやその他の統合ツールのインストールを構成するRobusta設定ファイルを生成できます。クラウドUIツールを有効にすることも強くお勧めします。 robusta gen -設定 上記のコマンドはデフォルトでSlackの設定を求めるプロンプトを表示するので、事前に設定し、関連情報を受け取るためのチャンネルを用意する必要があります。最後に、`generated_values.yaml`という名前のHelm Valuesファイルが生成されます。Slackチャンネルに以下のような情報が表示されれば、設定が正しいことが証明されます。 次にHelmを使ってインストールします。まず、Helm Chartリポジトリを追加します。 helmリポジトリにrobustaを追加https://robusta-charts.storage.googleapis.com && helm リポジトリを更新 その後、次のコマンドを使用してインストールできます。 helm install robusta robusta / robusta -f ./generated_values .yaml \ KinD テスト クラスターを使用している場合は、パラメーター `isSmallCluster=tru` を指定して、必要なリソースの量を削減できます。 helm install robusta robusta / robusta -f ./generated_values .yaml \ 例えば、これはKinDのテストクラスターです。インストール後、以下のようなPodリストが表示されます。 $ kubectlポッドを取得する インストール中に Robusta の UI 機能が有効になっている場合は、現在のクラスターの関連監視データを Web UI で表示できます。 テストRobusta はデフォルトで Kubernetes ポッドがクラッシュすると通知を送信します。ここでは、テスト用にクラッシュするポッドを作成します。このテストアプリケーションのリソースリストを以下に示します。 apiバージョン:アプリ/ v1 このマニフェストを適用するか、robusta デモ コマンドを実行するだけで、ポッドは通常の起動後すぐにクラッシュします。 $ kubectlポッドを取得-A ポッドが 2 回再起動すると、Slack チャネルはクラッシュしたポッドに関するメッセージを受信できるようになります。 さらに、Podのクラッシュログ全体も確認できるため、監視やアラート通知に非常に役立ちます。同様に、Robusta UIが有効になっている場合は、Web UIページでも同様のメッセージを確認できます。 自動化の基礎Robusta 自動化がどのように機能するかを示すために、デプロイメントが変更されたときに Slack メッセージを送信する自動化を構成します。 まず、generated_values.yaml ファイルに次の内容を追加します。 カスタムプレイブック 次に Robusta を更新します。 helmアップグレードrobusta robusta / robusta --values = generated_values .yaml 更新後、デプロイメントのレプリカの数を変更してみましょう。 kubectl scale --レプリカNEW_REPLICAS_COUNTデプロイメント/ DEPLOYMENT_NAME 通常、Slack チャネルは次のような通知メッセージを受信します。 Robusta UI が有効になっている場合は、すべてのアラートと変更もタイムラインの下に表示されます。 クリックして変更を表示することもできます。 もちろん、Robusta はプレイブック操作の実装など、他にも様々な用途に使用できます。Robusta に関するより詳細な情報については、公式ドキュメント (https://docs.robusta.dev) をご覧ください。 |