LoginSignup
3
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-11-24

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

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

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

Rancher Monitoring(Prometheus Operator) v2機能

image.png

特徴

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

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

Rancher Continuous Delivery機能

fleet.png

特徴

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画面にアクセスできます。
image.png

GitOpsワークフローの設定

Rancher Continuous Delivery機能は、インストールが不要です。クラスター構築時に、Rancherが自動にインストールしてくれます。
・検証用アプリケーションのnamespaceを作成:example
・ダッシュボード画面の左上のメニューから、[Cluster Explorer] -> [Continuous Delivery]にアクセスし、開く[Git Repos]の画面に、モニタリング設定yamlを格納するGitリポジトリを設定します。
image.png
- [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設定後に、自動にデプロイ作業が行われますので、しばらくすると、下記のような、リソースデプロイ完了ステータスの画面になります。
image.png

・モニタリングのダッシュボードから、[Prometheus Targets]画面開き、example-appは監視対象に設定されていることが確認できます。
image.png
image.png
・モニタリングのダッシュボードから、[Prometheus Graph]画面開き、example-appのメトリックが収集されていることが確認できます。
image.png
image.png
・モニタリングのダッシュボードから、[Prometheus Rules]画面開き、アラートルールは設定されていることが確認できます。
image.png
image.png

まとめ

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

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1