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

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

Cheng Jianqiang
Cheng Jianqiang
Published: November 26, 2020
Updated: November 27, 2020

この記事は、カスタムリソース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の新しい機能の利用により、アプリケーションの継続デリバリーだけではなく、インフラの継続デリバリーも簡単に実現できます。

Cheng Jianqiang
Cheng Jianqiang
Field Engineer
アクセンチュアなどでDevOpsエンジニアを経て、2019年よりRancher LabsのField Engineerを担当。様々なコミュニティ活動やセミナー、トレーニングでRancherの魅力を語っている。
Rancherを始めましょう