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クラスターを利用でき、ローカル開発環境に次のツールがインストールされている必要があります。
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
manifest
ディレクトリには、サービスアカウント、展開、 StatefulSets 、ConfigMaps[を含むすべてのモニタリングスタックコンポーネントのKubernetesマニフェストが含まれていますX194X]など。 これらのマニフェストファイルとその構成方法の詳細については、監視スタックの構成に進んでください。
起動して実行したいだけの場合は、APP_INSTANCE_NAME
およびNAMESPACE
環境変数を設定することから始めます。これらの環境変数は、スタックのコンポーネントの一意の名前を構成し、を構成するために使用されます。スタックがデプロイされる名前空間:
export APP_INSTANCE_NAME=sammy-cluster-monitoring export NAMESPACE=default
このチュートリアルでは、APP_INSTANCE_NAME
をsammy-cluster-monitoring
に設定します。これにより、すべてのモニタリングスタックのKubernetesオブジェクト名が付加されます。 監視スタックの代わりに、一意の説明プレフィックスを使用する必要があります。 また、名前空間をdefault
に設定します。 監視スタックをdefault
以外の名前空間にデプロイする場合は、最初にクラスターに作成するようにしてください。
kubectl create namespace "$NAMESPACE"
次の出力が表示されます。
Outputnamespace/sammy created
この場合、NAMESPACE
環境変数はsammy
に設定されています。 チュートリアルの残りの部分では、NAMESPACE
がdefault
に設定されていると想定します。
次に、base64
コマンドを使用して、安全なGrafanaパスワードをbase64エンコードします。 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
、または[X170X ]ローカルポートを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}/"
http://SERVICE_IP/
に移動して、GrafanaUIにアクセスできるようになりました。
Grafanaサービスにアクセスするためのローカルポートの転送
Grafanaサービスを外部に公開したくない場合は、kubectl port-forward
を使用して、ローカルポート3000
をクラスターに直接Grafanaポッドに転送することもできます。
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
がGrafanaポッドsammy-cluster-monitoring-grafana-0
のcontainerPort
3000
に転送されます。 ポートをKubernetesクラスターに転送する方法の詳細については、ポート転送を使用してクラスター内のアプリケーションにアクセスするを参照してください。
Webブラウザでhttp://localhost:3000
にアクセスします。 次の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ポッドに接続するには、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
をsammy-cluster-monitoring-prometheus-0
ポッドのポート9090
に転送します。
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
がPrometheusポッドに正常に転送されていることを示しています。
Webブラウザでhttp://localhost:9090
にアクセスします。 次のPrometheusGraphページが表示されます。
ここから、Prometheusクエリ言語であるPromQLを使用して、データベースに保存されている時系列メトリックを選択して集計できます。 PromQLの詳細については、公式のPrometheusドキュメントから QueryingPrometheusを参照してください。
Expression フィールドに、kubelet_node_name
と入力し、Executeを押します。 Kubernetesクラスター内のノードを報告するメトリックkubelet_node_name
の時系列のリストが表示されます。 メトリックラベルで、どのノードがメトリックを生成し、どのジョブがメトリックをスクレイプしたかを確認できます。
最後に、上部のナビゲーションバーで、ステータス、ターゲットの順にクリックして、Prometheusがスクレイプするように構成されているターゲットのリストを表示します。 ステップ2の冒頭で説明した監視エンドポイントのリストに対応するターゲットのリストが表示されます。
Prometheusの詳細と、クラスターメトリックを照会する方法については、公式のPrometheusドキュメントを参照してください。
Prometheusによって生成されたアラートを管理するAlertmanagerに接続するには、Prometheusへの接続に使用したのと同様のプロセスに従います。 。 一般に、Prometheusの上部ナビゲーションバーにある Alerts をクリックすると、AlertmanagerAlertsを調べることができます。
Alertmanagerポッドに接続するには、もう一度kubectl port-forward
を使用してローカルポートを転送します。 Prometheusの探索が終了したら、CTRL-C
を押してポート転送トンネルを閉じるか、新しいシェルを開いて新しい接続を作成できます。 .
ローカルポート9093
をsammy-cluster-monitoring-alertmanager-0
ポッドのポート9093
に転送します。
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ポッドに正常に転送されていることを示しています。
Webブラウザでhttp://localhost:9093
にアクセスします。 次の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.yml
と呼ばれる最小限のAlertmanager構成ファイルを含むConfigMap。 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-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ファイルにあります。