DigitalOceanでPrometheus、Grafana、Alertmanagerを使用してKubernetesモニタリングスタックを設定する方法
ステータス:非推奨
この記事は廃止され、メンテナンスされなくなりました。
理由
このチュートリアルの手順は引き続き機能しますが、保守が不必要に困難になる構成が生成されます。
代わりに参照してください
この記事は参照として役立つ場合がありますが、ベストプラクティスに従わない場合があります。 最新の記事を使用することを強くお勧めします。
序章
トレースとロギングに加えて、モニタリングとアラートはKubernetesの可観測性スタックの重要なコンポーネントです。 DigitalOcean Kubernetesクラスターのモニタリングを設定すると、リソースの使用状況を追跡し、アプリケーションエラーを分析およびデバッグできます。
監視システムは通常、メトリックデータと視覚化レイヤーを格納する時系列データベースで構成されます。 さらに、アラートレイヤーはアラートを作成および管理し、必要に応じて統合および外部サービスにアラートを渡します。 最後に、1つ以上のコンポーネントが、スタックによるアラート用に保存、視覚化、および処理されるメトリックデータを生成または公開します。
人気のあるモニタリングソリューションの1つは、オープンソースの Prometheus 、 Grafana 、 Alertmanager スタックで、kube-state-metricsおよびと一緒にデプロイされます。 X174X] node_exporter は、クラスターレベルのKubernetesオブジェクトメトリックと、CPUやメモリ使用量などのマシンレベルのメトリックを公開します。
このモニタリングスタックをKubernetesクラスターにロールアウトするには、個々のコンポーネント、マニフェスト、Prometheusメトリック、およびGrafanaダッシュボードを構成する必要があります。これには時間がかかる場合があります。 DigitalOcean CommunityDeveloperEducationチームによってリリースされたDigitalOceanKubernetes Cluster Monitoring Quickstart には、Prometheus-Grafana-Alertmanagerクラスターモニタリングスタックの完全に定義されたマニフェスト、および事前構成されたアラートとGrafanaダッシュボードのセットが含まれています。 これは、迅速に立ち上げて実行するのに役立ち、可観測性スタックを構築するための強固な基盤を形成します。
このチュートリアルでは、この事前構成されたスタックをDigitalOcean Kubernetesにデプロイし、Prometheus、Grafana、およびAlertmanagerインターフェースにアクセスして、カスタマイズする方法を説明します。
前提条件
開始する前に、 DigitalOcean Kubernetesクラスターを利用でき、ローカル開発環境に次のツールがインストールされている必要があります。
- The
kubectl
ローカルマシンにインストールされ、クラスターに接続するように構成されたコマンドラインインターフェイス。 インストールと構成の詳細を読むことができますkubectl
公式ドキュメント。 - ローカルマシンにインストールされているgitバージョン管理システム。 Ubuntu 18.04にgitをインストールする方法については、 Ubuntu18.04にGitをインストールする方法を参照してください。
- ローカルマシンにインストールされているCoreutilsbase64ツール。 Linuxマシンを使用している場合、これはおそらくすでにインストールされています。 OS Xを使用している場合は、
openssl base64
、デフォルトでインストールされます。
<$>[注] ノート: Cluster Monitoring Quickstartは、DigitalOceanKubernetesクラスターでのみテストされています。 クイックスタートを他のKubernetesクラスタで使用するには、マニフェストファイルにいくつかの変更が必要になる場合があります。 <$>
ステップ1—GitHubリポジトリのクローンを作成して環境変数を構成する
まず、gitを使用してDigitalOcean Kubernetes Cluster MonitoringGitHubリポジトリをローカルマシンに複製します。
- git clone https://github.com/do-community/doks-monitoring.git
次に、リポジトリに移動します。
- cd doks-monitoring
次のディレクトリ構造が表示されます。
- ls
OutputLICENSE
README.md
changes.txt
manifest
The manifest
ディレクトリには、サービスアカウント、 Deployment 、 StatefulSets 、 ConfigMaps など、すべてのモニタリングスタックコンポーネントのKubernetesマニフェストが含まれています。 これらのマニフェストファイルとその構成方法の詳細については、監視スタックの構成に進んでください。
物事を稼働させたいだけの場合は、まず APP_INSTANCE_NAME
と NAMESPACE
環境変数。スタックのコンポーネントの一意の名前を構成し、スタックがデプロイされる名前空間を構成するために使用されます。
- export APP_INSTANCE_NAME=sammy-cluster-monitoring
- export NAMESPACE=default
このチュートリアルでは、 APP_INSTANCE_NAME
に sammy-cluster-monitoring
、これにより、すべてのモニタリングスタックのKubernetesオブジェクト名が付加されます。 監視スタックの代わりに、一意の説明プレフィックスを使用する必要があります。 また、名前空間をに設定します default
. 監視スタックを名前空間otherにデプロイする場合 default
、最初にクラスターで作成するようにしてください。
- kubectl create namespace "$NAMESPACE"
次の出力が表示されます。
Outputnamespace/sammy created
この場合、 NAMESPACE
環境変数がに設定されました sammy
. チュートリアルの残りの部分では、次のように想定します。 NAMESPACE
に設定されています default
.
今、使用します base64
base64へのコマンド-安全なGrafanaパスワードをエンコードします。 選択したパスワードを必ず置き換えてください your_grafana_password
:
- export GRAFANA_GENERATED_PASSWORD="$(echo -n 'your_grafana_password' | base64)"
macOSを使用している場合は、 openssl base64
デフォルトでインストールされるコマンド。
この時点で、スタックのKubernetesマニフェストを取得し、必要な環境変数を構成したので、構成された変数をKubernetesマニフェストファイルに置き換えて、Kubernetesクラスターにスタックを作成する準備が整いました。
ステップ2—監視スタックの作成
DigitalOcean Kubernetes Monitoring Quickstartリポジトリには、次のモニタリング、スクレイピング、および視覚化コンポーネントのマニフェストが含まれています。
- Prometheus は、時系列データベースおよび監視ツールであり、メトリックエンドポイントをポーリングし、これらのエンドポイントによって公開されたデータをスクレイピングおよび処理することで機能します。 時系列データクエリ言語であるPromQLを使用してこのデータをクエリできます。 Prometheusは、DigitalOcean BlockStorageでPersistentVolumesを使用する2つのレプリカを持つStatefulSetとしてクラスターにデプロイされます。 さらに、事前設定されたPrometheusアラート、ルール、およびジョブのセットがConfigMapとして保存されます。 これらの詳細については、監視スタックの構成のPrometheusセクションに進んでください。
- Alertmanager は、通常Prometheusと一緒にデプロイされ、スタックのアラートレイヤーを形成し、Prometheusによって生成されたアラートを処理し、それらを重複排除、グループ化して、電子メールやPagerDutyなどの統合にルーティングします。 Alertmanagerは、2つのレプリカを持つStatefulSetとしてインストールされます。 Alertmanagerの詳細については、PrometheusドキュメントのAlertingを参照してください。
- Grafana は、データの視覚化および分析ツールであり、メトリックデータのダッシュボードとグラフを作成できます。 Grafanaは、1つのレプリカを持つStatefulSetとしてインストールされます。 さらに、kubernetes-mixinによって生成された事前構成されたダッシュボードのセットがConfigMapとして保存されます。
- kube-state-metrics は、Kubernetes APIサーバーをリッスンし、デプロイやポッドなどのKubernetesオブジェクトの状態に関する指標を生成するアドオンエージェントです。 これらのメトリックは、HTTPエンドポイントでプレーンテキストとして提供され、Prometheusによって使用されます。 kube-state-metricsは、1つのレプリカを使用した自動スケーラブルDeploymentとしてインストールされます。
- node-exporter 、クラスターノードで実行され、CPUやメモリ使用量などのOSおよびハードウェアメトリックをPrometheusに提供するPrometheusエクスポーター。 これらのメトリックは、HTTPエンドポイントでプレーンテキストとしても提供され、Prometheusによって使用されます。 node-exporterはDaemonSetとしてインストールされます。
デフォルトでは、node-exporter、kube-state-metrics、および上記の他のコンポーネントによって生成されたスクレイピングメトリックとともに、Prometheusは次のコンポーネントからメトリックをスクレイピングするように構成されます。
- kube-apiserver、KubernetesAPIサーバー。
- kubelet 、ノード上のポッドとコンテナを管理するためにkube-apiserverと対話するプライマリノードエージェント。
- cAdvisor は、実行中のコンテナーを検出し、CPU、メモリ、ファイルシステム、およびネットワークの使用状況のメトリックを収集するノードエージェントです。
これらのコンポーネントの構成とPrometheusスクレイピングジョブの詳細については、監視スタックの構成に進んでください。 ここで、前の手順で定義した環境変数をリポジトリのマニフェストファイルに置き換え、個々のマニフェストを単一のマスターファイルに連結します。
使用することから始めます awk
と envsubst
記入するには APP_INSTANCE_NAME
, NAMESPACE
、 と GRAFANA_GENERATED_PASSWORD
リポジトリのマニフェストファイルの変数。 変数値に代入した後、ファイルは結合され、と呼ばれるマスターマニフェストファイルに保存されます。 sammy-cluster-monitoring_manifest.yaml
.
- awk 'FNR==1 {print "---"}{print}' manifest/* \
- | envsubst '$APP_INSTANCE_NAME $NAMESPACE $GRAFANA_GENERATED_PASSWORD' \
- > "${APP_INSTANCE_NAME}_manifest.yaml"
監視スタックへの変更を追跡し、以前のバージョンにロールバックできるように、このファイルをバージョン管理に保存することを検討する必要があります。 これを行う場合は、必ずスクラブしてください admin-password
Grafanaパスワードをバージョン管理にチェックインしないように、ファイルから変数を取得します。
マスターマニフェストファイルを生成したので、次を使用します kubectl apply -f
マニフェストを適用し、構成したネームスペースにスタックを作成するには、次のようにします。
- kubectl apply -f "${APP_INSTANCE_NAME}_manifest.yaml" --namespace "${NAMESPACE}"
次のような出力が表示されます。
Outputserviceaccount/alertmanager created
configmap/sammy-cluster-monitoring-alertmanager-config created
service/sammy-cluster-monitoring-alertmanager-operated created
service/sammy-cluster-monitoring-alertmanager created
. . .
clusterrolebinding.rbac.authorization.k8s.io/prometheus created
configmap/sammy-cluster-monitoring-prometheus-config created
service/sammy-cluster-monitoring-prometheus created
statefulset.apps/sammy-cluster-monitoring-prometheus created
を使用してスタックのデプロイの進行状況を追跡できます kubectl get all
. すべてのスタックコンポーネントが RUNNING
、GrafanaWebインターフェースを介して事前構成されたGrafanaダッシュボードにアクセスできます。
ステップ3—Grafanaへのアクセスとメトリクスデータの調査
GrafanaサービスマニフェストはGrafanaを ClusterIP
サービス。つまり、クラスター内部のIPアドレスを介してのみアクセスできます。 Kubernetesクラスタの外部でGrafanaにアクセスするには、次のいずれかを使用できます。 kubectl patch
インプレースでサービスを次のような公開タイプに更新するには NodePort
また LoadBalancer
、 また kubectl port-forward
ローカルポートをGrafanaポッドポートに転送します。 このチュートリアルではポートを転送するので、ローカルポートを転送してGrafanaサービスにアクセスするに進んでください。 Grafanaを外部に公開することに関する次のセクションは、参照用に含まれています。
ロードバランサーを使用したGrafanaサービスの公開(オプション)
外部パブリックIPを使用してGrafana用のDigitalOceanロードバランサーを作成する場合は、 kubectl patch
既存のGrafanaサービスをインプレースで更新するには LoadBalancer
サービスの種類:
- kubectl patch svc "$APP_INSTANCE_NAME-grafana" \
- --namespace "$NAMESPACE" \
- -p '{"spec": {"type": "LoadBalancer"}}'
kubectl patch
このコマンドを使用すると、Kubernetesオブジェクトをインプレースで更新して、オブジェクトを再デプロイせずに変更を加えることができます。 マスターマニフェストファイルを直接変更して、 type: LoadBalancer
Grafanaサービス仕様のパラメーター。 詳細については kubectl patch
およびKubernetesサービスタイプについては、公式のKubernetesドキュメントの kubectlpatchおよびServicesリソースを使用してAPIオブジェクトをインプレースで更新するを参照できます。
上記のコマンドを実行すると、次のように表示されます。
Outputservice/sammy-cluster-monitoring-grafana patched
ロードバランサーを作成してパブリックIPを割り当てるには、数分かかる場合があります。 次のコマンドを使用して進行状況を追跡できます。 -w
変更を監視するフラグ:
- kubectl get service "$APP_INSTANCE_NAME-grafana" -w
DigitalOceanロードバランサーが作成され、外部IPアドレスが割り当てられたら、次のコマンドを使用してその外部IPをフェッチできます。
- SERVICE_IP=$(kubectl get svc $APP_INSTANCE_NAME-grafana \
- --namespace $NAMESPACE \
- --output jsonpath='{.status.loadBalancer.ingress[0].ip}')
- echo "http://${SERVICE_IP}/"
これで、に移動してGrafanaUIにアクセスできます。 http://SERVICE_IP/
.
Grafanaサービスにアクセスするためのローカルポートの転送
Grafanaサービスを外部に公開したくない場合は、ローカルポートを転送することもできます 3000
を使用して、クラスターに直接Grafanaポッドに kubectl port-forward
.
- kubectl port-forward --namespace ${NAMESPACE} ${APP_INSTANCE_NAME}-grafana-0 3000
次の出力が表示されます。
OutputForwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000
これにより、ローカルポートが転送されます 3000
に containerPort
3000
Grafanaポッドの sammy-cluster-monitoring-grafana-0
. ポートをKubernetesクラスターに転送する方法の詳細については、ポート転送を使用してクラスター内のアプリケーションにアクセスするを参照してください。
訪問 http://localhost:3000
Webブラウザで。 次のGrafanaログインページが表示されます。
ログインするには、デフォルトのユーザー名を使用します admin
(変更していない場合 admin-user
パラメータ)、および手順1で設定したパスワード。
次のホームダッシュボードが表示されます。
左側のナビゲーションバーで、ダッシュボードボタンを選択し、管理をクリックします。
Dashboards-configmap.yamlマニフェストで構成されたダッシュボードを一覧表示する次のダッシュボード管理インターフェイスが表示されます。
これらのダッシュボードはによって生成されます kubernetes-mixin
、クラスター監視GrafanaダッシュボードとPrometheusアラートの標準化されたセットを作成できるオープンソースプロジェクト。 詳細については、kubernetes-mixinGitHubリポジトリを参照してください。
Kubernetes / Nodes ダッシュボードをクリックして、特定のノードのCPU、メモリ、ディスク、およびネットワークの使用状況を視覚化します。
これらのダッシュボードの使用方法の説明はこのチュートリアルの範囲外ですが、詳細については次のリソースを参照してください。
- システムのパフォーマンスを分析するためのUSEメソッドの詳細については、Brendan Greggの使用率の飽和とエラー(USE)メソッドページを参照してください。
- GoogleのSREBook は、もう1つの役立つリソースであり、特に第6章:分散システムの監視です。
- 独自のGrafanaダッシュボードを作成する方法については、Grafanaのはじめにページをご覧ください。
次のステップでは、同様のプロセスに従って、Prometheus監視システムに接続して探索します。
ステップ4—PrometheusとAlertmanagerへのアクセス
Prometheus Podsに接続するには、次を使用できます。 kubectl port-forward
ローカルポートを転送します。 Grafanaの探索が終了したら、を押すことでポートフォワードトンネルを閉じることができます CTRL-C
. または、新しいシェルを開いて、新しいポートフォワード接続を作成することもできます。
実行中のポッドをリストすることから始めます default
名前空間:
- kubectl get pod -n default
次のポッドが表示されます。
Outputsammy-cluster-monitoring-alertmanager-0 1/1 Running 0 17m
sammy-cluster-monitoring-alertmanager-1 1/1 Running 0 15m
sammy-cluster-monitoring-grafana-0 1/1 Running 0 16m
sammy-cluster-monitoring-kube-state-metrics-d68bb884-gmgxt 2/2 Running 0 16m
sammy-cluster-monitoring-node-exporter-7hvb7 1/1 Running 0 16m
sammy-cluster-monitoring-node-exporter-c2rvj 1/1 Running 0 16m
sammy-cluster-monitoring-node-exporter-w8j74 1/1 Running 0 16m
sammy-cluster-monitoring-prometheus-0 1/1 Running 0 16m
sammy-cluster-monitoring-prometheus-1 1/1 Running 0 16m
ローカルポートを転送します 9090
ポートへ 9090
の sammy-cluster-monitoring-prometheus-0
ポッド:
- kubectl port-forward --namespace ${NAMESPACE} sammy-cluster-monitoring-prometheus-0 9090
次の出力が表示されます。
OutputForwarding from 127.0.0.1:9090 -> 9090
Forwarding from [::1]:9090 -> 9090
これは、ローカルポートが 9090
PrometheusPodに正常に転送されています。
訪問 http://localhost:9090
Webブラウザで。 次のPrometheusGraphページが表示されます。
ここから、Prometheusクエリ言語であるPromQLを使用して、データベースに保存されている時系列メトリックを選択して集計できます。 PromQLの詳細については、公式のPrometheusドキュメントから QueryingPrometheusを参照してください。
Expressionフィールドに次のように入力します kubelet_node_name
実行を押します。 メトリックを含む時系列のリストが表示されます kubelet_node_name
これは、Kubernetesクラスター内のノードを報告します。 メトリックラベルで、どのノードがメトリックを生成し、どのジョブがメトリックをスクレイプしたかを確認できます。
最後に、上部のナビゲーションバーで、ステータス、ターゲットの順にクリックして、Prometheusがスクレイプするように構成されているターゲットのリストを表示します。 ステップ2の冒頭で説明した監視エンドポイントのリストに対応するターゲットのリストが表示されます。
Prometheusの詳細と、クラスターメトリックを照会する方法については、公式のPrometheusドキュメントを参照してください。
Prometheusによって生成されたアラートを管理するAlertmanagerに接続するには、Prometheusへの接続に使用したのと同様のプロセスに従います。 。 一般に、Prometheusの上部ナビゲーションバーにある Alerts をクリックすると、AlertmanagerAlertsを調べることができます。
Alertmanagerポッドに接続するには、もう一度使用します kubectl port-forward
ローカルポートを転送します。 Prometheusの探索が終了したら、を押すことでポートフォワードトンネルを閉じることができます CTRL-C
または、新しいシェルを開いて新しい接続を作成します。 .
ローカルポートを転送します 9093
ポートへ 9093
の sammy-cluster-monitoring-alertmanager-0
ポッド:
- kubectl port-forward --namespace ${NAMESPACE} sammy-cluster-monitoring-alertmanager-0 9093
次の出力が表示されます。
OutputForwarding from 127.0.0.1:9093 -> 9093
Forwarding from [::1]:9093 -> 9093
これは、ローカルポートが 9093
Alertmanagerポッドに正常に転送されています。
訪問 http://localhost:9093
Webブラウザで。 次のAlertmanagerAlertsページが表示されます。
ここから、アラートの発火とオプションでアラートの消音を調べることができます。 Alertmanagerの詳細については、公式Alertmanagerドキュメントを参照してください。
次のステップでは、いくつかの監視スタックコンポーネントをオプションで構成およびスケーリングする方法を学習します。
手順6—監視スタックの構成(オプション)
DigitalOcean Kubernetes Cluster Monitoringクイックスタートリポジトリに含まれるマニフェストは、さまざまなコンテナイメージ、さまざまな数のポッドレプリカ、さまざまなポート、およびカスタマイズされた構成ファイルを使用するように変更できます。
このステップでは、各マニフェストの目的の概要を説明し、マスターマニフェストファイルを変更してPrometheusを最大3つのレプリカにスケーリングする方法を示します。
開始するには、に移動します manifests
リポジトリ内のサブディレクトリ、およびディレクトリの内容を一覧表示します。
- cd manifest
- ls
Outputalertmanager-0serviceaccount.yaml
alertmanager-configmap.yaml
alertmanager-operated-service.yaml
alertmanager-service.yaml
. . .
node-exporter-ds.yaml
prometheus-0serviceaccount.yaml
prometheus-configmap.yaml
prometheus-service.yaml
prometheus-statefulset.yaml
ここには、さまざまな監視スタックコンポーネントのマニフェストがあります。 マニフェストの特定のパラメーターの詳細については、リンクをクリックして、YAMLファイル全体に含まれているコメントを参照してください。
Alertmanager
-
alertmanager-0serviceaccount.yaml :Alertmanagerサービスアカウント。AlertmanagerポッドにKubernetesIDを付与するために使用されます。 サービスアカウントの詳細については、ポッドのサービスアカウントの構成を参照してください。
-
alertmanager-configmap.yaml :最小限のAlertmanager構成ファイルを含むConfigMap。
alertmanager.yml
. Alertmanagerの構成はこのチュートリアルの範囲を超えていますが、Alertmanagerドキュメントの構成セクションを参照して詳細を確認できます。 -
alertmanager-operated-service.yaml :Alertmanager
mesh
現在の2レプリカ高可用性構成のAlertmanagerポッド間で要求をルーティングするために使用されるサービス。 -
alertmanager-service.yaml :Alertmanager
web
前の手順で行った可能性のあるAlertmanagerWebインターフェースにアクセスするために使用されるサービス。 -
alertmanager-statefulset.yaml :2つのレプリカで構成されたAlertmanagerStatefulSet。
Grafana
-
Dashboards-configmap.yaml :事前構成された JSONGrafanaモニタリングダッシュボードを含むConfigMap。 ダッシュボードとアラートの新しいセットを最初から生成することは、このチュートリアルの範囲を超えていますが、詳細については、kubernetes-mixinGitHubリポジトリを参照してください。
-
grafana-0serviceaccount.yaml :Grafanaサービスアカウント。
-
grafana-configmap.yaml :最小限のGrafana構成ファイルのデフォルトセットを含むConfigMap。
-
grafana-secret.yaml :Grafana管理者ユーザーとパスワードを含むKubernetesシークレット。 Kubernetesシークレットの詳細については、シークレットを参照してください。
-
grafana-service.yaml :Grafanaサービスを定義するマニフェスト。
-
grafana-statefulset.yaml :1つのレプリカで構成されたGrafana StatefulSetで、スケーラブルではありません。 Grafanaのスケーリングは、このチュートリアルの範囲を超えています。 高可用性のGrafanaセットアップを作成する方法については、公式のGrafanaドキュメントから高可用性用のGrafanaのセットアップ方法を参照してください。
kube-state-metrics
-
kube-state-metrics-0serviceaccount.yaml :kube-state-metricsサービスアカウントとClusterRole。 ClusterRolesの詳細については、KubernetesドキュメントのRoleとClusterRoleを参照してください。
-
kube-state-metrics-deployment.yaml :メインのkube-state-metricsデプロイメントマニフェスト。addon-resizerを使用して1つの動的にスケーラブルなレプリカで構成されます。
-
kube-state-metrics-service.yaml :サービスを公開します
kube-state-metrics
展開。
ノードエクスポーター
-
node-exporter-0serviceaccount.yaml :node-exporterサービスアカウント。
-
node-exporter-ds.yaml :ノードエクスポーターのDaemonSetマニフェスト。 node-exporterはDaemonSetであるため、node-exporterポッドはクラスター内の各ノードで実行されます。
###プロメテウス
-
prometheus-0serviceaccount.yaml :Prometheusサービスアカウント、ClusterRoleおよびClusterRoleBinding。
-
prometheus-configmap.yaml :3つの構成ファイルを含むConfigMap:
alerts.yaml
:によって生成された事前設定されたアラートのセットが含まれていますkubernetes-mixin
(これは、Grafanaダッシュボードの生成にも使用されました)。 アラートルールの構成の詳細については、Prometheusドキュメントのアラートルールを参照してください。prometheus.yaml
:Prometheusのメイン構成ファイル。 Prometheusは、ステップ2の最初にリストされているすべてのコンポーネントをスクレイプするように事前構成されています。 Prometheusの構成はこの記事の範囲を超えていますが、詳細については、公式のPrometheusドキュメントから構成を参照してください。rules.yaml
:Prometheusが頻繁に必要な、または計算コストの高い式を計算し、その結果を新しい時系列のセットとして保存できるようにするPrometheus記録ルールのセット。 これらもによって生成されますkubernetes-mixin
、およびそれらの構成は、この記事の範囲を超えています。 詳細については、Prometheusの公式ドキュメントから記録ルールを参照してください。
-
prometheus-service.yaml :PrometheusStatefulSetを公開するサービス。
-
prometheus-statefulset.yaml :2つのレプリカで構成されたPrometheusStatefulSet。 このパラメーターは、必要に応じてスケーリングできます。
例:プロメテウスのスケーリング
監視スタックを変更する方法を示すために、Prometheusレプリカの数を2から3にスケーリングします。
を開きます sammy-cluster-monitoring_manifest.yaml
選択したエディターを使用したマスターマニフェストファイル:
- nano sammy-cluster-monitoring_manifest.yaml
マニフェストのPrometheusStatefulSetセクションまで下にスクロールします。
Output. . .
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: sammy-cluster-monitoring-prometheus
labels: &Labels
k8s-app: prometheus
app.kubernetes.io/name: sammy-cluster-monitoring
app.kubernetes.io/component: prometheus
spec:
serviceName: "sammy-cluster-monitoring-prometheus"
replicas: 2
podManagementPolicy: "Parallel"
updateStrategy:
type: "RollingUpdate"
selector:
matchLabels: *Labels
template:
metadata:
labels: *Labels
spec:
. . .
レプリカの数を2から3に変更します。
Output. . .
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: sammy-cluster-monitoring-prometheus
labels: &Labels
k8s-app: prometheus
app.kubernetes.io/name: sammy-cluster-monitoring
app.kubernetes.io/component: prometheus
spec:
serviceName: "sammy-cluster-monitoring-prometheus"
replicas: 3
podManagementPolicy: "Parallel"
updateStrategy:
type: "RollingUpdate"
selector:
matchLabels: *Labels
template:
metadata:
labels: *Labels
spec:
. . .
完了したら、ファイルを保存して閉じます。
を使用して変更を適用します kubectl apply -f
:
- kubectl apply -f sammy-cluster-monitoring_manifest.yaml --namespace default
を使用して進行状況を追跡できます kubectl get pods
. これと同じ手法を使用して、Kubernetesパラメーターの多くとこの可観測性スタックの構成の多くを更新できます。
結論
このチュートリアルでは、Prometheus、Grafana、Alertmanagerのモニタリングスタックを、ダッシュボード、Prometheusルール、アラートの標準セットを使用してDigitalOceanKubernetesクラスターにインストールしました。
HelmKubernetesパッケージマネージャーを使用してこのモニタリングスタックをデプロイすることもできます。 詳細については、HelmとPrometheusを使用したDigitalOceanKubernetesクラスタモニタリングの設定方法を参照してください。 同様のスタックを起動して実行する別の方法は、現在ベータ版のDigitalOcean Marketplace KubernetesMonitoringStackソリューションを使用することです。
DigitalOcean Kubernetes Cluster Monitoringクイックスタートリポジトリは、GoogleCloudPlatformのクリックしてデプロイするPrometheusソリューションに大きく基づいて変更されています。 元のリポジトリからの変更と変更の完全なマニフェストは、クイックスタートリポジトリのchanges.mdファイルにあります。