Rancher機能でモニタリングのIaCの実現


この記事は、カスタムリソースyamlで宣言しているモニタリング定義を、GitOpsワークフローで継続デリバリーさせる方法を紹介します。

今回で使用する機能は下記の2つです。
- Rancher Monitoring(Prometheus Operator) v2機能
- Rancher Continuous Delivery機能

いずれもRancher v2.5にGAリリースした機能です。まず、最初は簡単に機能紹介します。

Rancher Monitoring(Prometheus Operator) v2機能

特徴

・Prometheus Operatorをベースとしたモニタリングのソリューション
・カスタムメトリックの収集、アラームルールなどは、CRs(カスタムリソース)により簡単に定義できる
・全てのモニタリング定義が、CRsのyamlで定義出来る為、GitOpsベースのワークフローを簡単に構築できる

詳細な機能紹介は、こちらの記事をご参照ください。
または、こちらのドキュメントをご参照ください。

Rancher Continuous Delivery機能

特徴

Rancher FleetをベースとしたGitOpsのソリューション
・Gitリポジトリから複数のクラスタにアプリケーションと構成設定をデプロイ可能
・シングルクラスターだけではなく、マルチクラスターにも対応
・アプリケーションや構成設定は、Kubernetes YAML,Helm,Kustomizeというフォーマットを対応

詳細な機能紹介は、こちらのドキュメントをご参照ください。

モニタリングのIaCの構築

Rancher Monitoring v2のインストール

Rancher 2.5 から Rancher Monitoring v2 をインストールするのは簡単です。
・新しいダッシュボード画面の左上のメニューから、[Cluster Explorer] -> [Apps & Marketplace]にアクセスし、[Monitoring]をインストールするだけです。

・インストールが完了すると、ダッシュボード画面の左上のメニューから、[Cluster Explorer] -> [Monitoring]にアクセスし、モニタリングのダッシュボードを表示します。※ここからモニタリングの各コンポーネントUI画面にアクセスできます。

GitOpsワークフローの設定

Rancher Continuous Delivery機能は、インストールが不要です。クラスター構築時に、Rancherが自動にインストールしてくれます。
・検証用アプリケーションのnamespaceを作成:example
・ダッシュボード画面の左上のメニューから、[Cluster Explorer] -> [Continuous Delivery]にアクセスし、開く[Git Repos]の画面に、モニタリング設定yamlを格納するGitリポジトリを設定します。

- [Repository URL]:モニタリング設定yamlを格納するGitリポジトリURL
- [Paths]:yamlフォルダーの相対パス
- [Deploy To]:デプロイ先のクラスター

※Gitリポジトリのディレクトリー構成は下記となります。

gitops/monitoring
├── alert-s2-prom-rule.yaml #Prometheus Rules定義CRs
├── alert-s3-prom-rule.yaml #Prometheus Rules定義CRs
└── prom-app-example
    ├── example-app-deployment.yaml #example-app(検証用アプリケーション)のデプロイメント
    ├── example-app-service.yaml #example-appのサービス
    ├── example-app-service-monitor.yaml #example-appのservice-monitor定義CRs
    └── example-app-pod-monitor.yaml #example-appのpod-monitor定義CRs

上記のyaml設定ファイルのデプロイで、下記のアプリや、モニタリング設定がでデプロイされる想定です。
- アプリケーション:
 デプロイメント:example-app
 サービス:example-app
- モニタリング:
 PodMonitor:example-app-pod-monitor
 ServiceMonitor:example-app-service-monitor
 PrometheusRule:alert-1、alert-2、prometheus-example-rules

詳細なコードは、こちらのGithubリポジトリからご参照ください。

・Git Repos設定後に、自動にデプロイ作業が行われますので、しばらくすると、下記のような、リソースデプロイ完了ステータスの画面になります。

・モニタリングのダッシュボードから、[Prometheus Targets]画面開き、example-appは監視対象に設定されていることが確認できます。


・モニタリングのダッシュボードから、[Prometheus Graph]画面開き、example-appのメトリックが収集されていることが確認できます。


・モニタリングのダッシュボードから、[Prometheus Rules]画面開き、アラートルールは設定されていることが確認できます。

まとめ

Rancher 2.5の新しい機能の利用により、アプリケーションの継続デリバリーだけではなく、インフラの継続デリバリーも簡単に実現できます。