Prometheus

KubernetesにPrometheusを導入する手順|YAMLとminikubeでの設定ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Kubernetes 上の Prometheus 導入 手順 詳細

Kubernetes環境におけるリアルタイムモニタリングを構築するには、Prometheus導入が不可欠です。本記事では、YAMLファイルによるリソース作成minikubeクラスタでの検証ケースに焦点を当て、手順や注意点を網羅して解説します。DevOpsエンジニアやKubernetes管理者にとって、現実的な導入ステップが理解できるよう設計されています。


Kubernetesクラスタの事前準備(minikube環境構築)

ローカルでKubernetesクラスタを構築するには、minikubeを使用するのが一般的です。以下にインストールから確認までの手順を示します。

minikubeのインストールと起動手順

  1. minikubeのインストール:
  2. macOS: brew install minikube
  3. Linux: パッケージマネージャーまたは公式サイトからバイナリをダウンロード
  4. クラスタ起動:
    bash
    minikube start

    これで単一ノードのKubernetesクラスタが構築されます。

クラスタ状態確認コマンドの実行

以下のコマンドでクラスタの正常性を確認します:

Namespace作成時の注意点

  • デフォルト以外のNamespaceを使う場合は、以下のように作成してください:
    bash
    kubectl create namespace monitoring

  • クラスタに複数Namespaceを構築する際は、リソースの衝突を避けるために明確な命名規則を定義しましょう。


PrometheusのYAMLファイルによるデプロイメント

手動でYAMLファイルを作成してPrometheusをデプロイする方法を解説します。Helmチャートとの選択肢比較も含みます。

DeploymentとServiceリソースのYAMLサンプル

以下は、シンプルなDeploymentとServiceの例です:

ConfigMapで指定するPrometheus構成ファイルの記述例

Prometheusの構成(prometheus.yml)をConfigMapに保存します:

注意: localhostではなく、Service名ベースの参照(例: prometheus.monitoring.svc.cluster.localを使用すること。PodIPは不安定なため非推奨です。

ロール・ロールバインディングの設定

RBACを有効にするには、以下のようなRoleとRoleBindingを作成します:

注意: defaultサービスアカウントではなく、専用のServiceAccount(例: prometheus-sa)を必ず作成してください。セキュリティとロール分離の観点から推奨されます。


ServiceMonitorリソースによるメトリクススクレイピング設定

ServiceMonitorは、PrometheusがKubernetes内のサービスを監視するためのリソースです。ただし、monitoring.coreos.com APIグループの利用前提があります。

Prometheus Operatorのインストール手順(必須)

  1. HelmチャートでOperatorをデプロイ:
    bash
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm install prometheus-operator prometheus-community/kube-prometheus-stack -n monitoring

  2. CRDsのインストール(Helmにより自動処理)

  3. ServiceMonitorリソースが利用可能になるまで待機:
    bash
    kubectl get crds | grep monitoring.coreos.com

ServiceMonitorのYAMLテンプレート

以下のようにServiceMonitorを作成します:

監視対象サービスのラベル付け方法

監視対象となるKubernetesサービスには、以下のようにラベルを付与します:


Prometheusサービスの外部公開方法

開発・検証環境では、NodePortまたはIngressを通じてPrometheusにアクセスする必要があります。

NodePortでクラスタ外からアクセスする設定

Serviceリソースにtype: NodePortを指定します:

クラスタ外からアクセスできます(例: http://localhost:30000)。

IngressとTLS証明書を使用したHTTPSアクセス構成

Ingressリソースを作成し、ドメインを指定します:

TLS証明書を有効にするには、Let's EncryptなどのCAで発行された証明書をIngressに割り当てます。


導入後の監視状況確認とトラブルシューティング

Prometheus導入後は、正しくモニタリングが行われているかを確認しましょう。

Prometheus UIからメトリクスの可視化

ブラウザで http://<prometheus-service>:9090 にアクセスし、「Status」→「Targets」から監視対象のステータスを確認します。

ポッドやサービスが正常に起動しているかのチェック

以下のコマンドで状態を確認してください:


長期保存用のRemote Write設定(MetricFireなど)

メトリクスを長期保存するには、Remote Write機能を使用します。

Prometheusのremote_write設定ファイルの記述例

ConfigMapに以下のように記述します:

外部サービスとの接続テスト方法

PrometheusのUIで「Status」→「Configuration」から、remote_writeが正しく設定されているかを確認します。また、curlコマンドでアクセス可能か試してください。


パラメータ化と汎用性向上

YAMLテンプレート内のnamespaceフィールドは固定値(例: monitoringの代わりにパラメータ化することで柔軟性が高まります。以下のようなアプローチを検討してください:

パラメータ化の実装方法

  • Helmチャート: 値ファイルでNamespaceを指定します(例: values.yamlnamespace: monitoring)。
  • 環境変数: 構築時テンプレートで ${NAMESPACE} を置換します(例: sed "s/\${NAMESPACE}/monitoring/g")。
項目 補足
Namespaceのパラメータ化 ${NAMESPACE} 環境ごとに変更可能
デプロイメントテンプレート prometheus-deployment.yaml 変数でnamespaceを指定

  • Kubernetes 上の Prometheus 導入 手順 詳細 を理解することで、リアルタイムモニタリング環境を構築できます。
  • YAMLファイルによるリソース作成とminikubeでの検証ケースを活用し、信頼性の高い導入が可能です。
  • 本記事の手順に従ってPrometheusを導入し、Kubernetesクラスタのリアルタイムモニタリング環境構築を試してみましょう

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Prometheus