Deployment のモニタリング

サポートされているワークロードなど、Google Distributed Cloud コネクテッド デプロイの健全性、稼働時間、アップグレードをモニタリングする方法について説明します。 モニタリングの構成と使用可能な指標の詳細については、 ログと指標をご覧ください。

ワークロードの健全性と稼働時間をモニタリングする

Distributed Cloud コネクテッド デプロイで実行されているワークロード(コンテナと仮想マシン)の健全性と稼働時間のモニタリングは、お客様の責任で行っていただく必要があります。

コンテナ ワークロード

デプロイするコンテナ化されたワークロードの健全性と稼働時間をモニタリングするには、Prometheus 指標ソリューションを使用することをおすすめします。Pod と Service から指標を取得するように Prometheus を構成できます。Google マネージド システム サービスは、Google によって自動的にモニタリングおよび管理されます。Prometheus の構成の詳細については、 Prometheus で指標を収集するをご覧ください。

コンテナ ワークロードをモニタリングするには、次の主要な指標を使用します。Prometheus を使用する場合は、ワークロードのこれらの特定の指標を公開するために、Kube 状態指標をデプロイして管理する必要があります。

  • kube_pod_status_phase: Failed または Unknown フェーズの Pod をモニタリングします。
  • kube_pod_container_status_waiting_reason: CrashLoopBackOff または ImagePullBackOff で停止している Pod を特定します。
  • container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes(cAdvisor から): リソース消費量をモニタリングして、メモリ不足(OOM)の問題を防ぎます。

仮想マシン ワークロード

Distributed Cloud コネクテッドでは、仮想マシン(VM)は標準の Kubernetes Pod 内で実行されます。通常、virt-launcher- という接頭辞が付いています。VM の健全性とステータスをモニタリングするには、主に VirtualMachine カスタム リソースのステータスを確認するか、VM 内からアプリケーション指標をモニタリングします。

基盤となる virt-launcher Pod 指標を、次の詳細の二次指標として使用します。

  • リソース使用量: ランチャー Pod の CPU とメモリの消費量をモニタリングして、VM に十分なリソースがあることを 確認します。
  • Pod フェーズ: ランチャー Pod のフェーズを追跡して、起動に失敗した VM またはクラッシュした VM を特定します。

VM に割り当てられたリソースを調整するには、VM カスタム リソース仕様を変更します。基盤となる virt-launcher Pod YAML はプラットフォームによって管理されるため、直接変更しないでください。直接変更すると、上書きされるか、調整エラーが発生します。

保留状態の VM のトラブルシューティングについては、 保留状態の仮想マシンのトラブルシューティングをご覧ください。

Distributed Cloud コネクテッドのアップグレードをモニタリングする

Cloud Monitoring の指標と gcloud コマンドを使用して、Distributed Cloud コネクテッド ソフトウェアのアップグレードの進行状況とステータスをモニタリングします。 アップグレードは Google によってスケジュール設定され、実行されます。モニタリングは、ワークロードの移行の可視化と計画のみを目的としています。

アップグレードが進行中かどうかを確認し、 ステータスをモニタリングし、失敗したアップグレードのトラブルシューティングを行う方法の詳細については、 ソフトウェア アップグレードのトラブルシューティングをご覧ください。

ローカル ストレージの健全性をモニタリングする

Distributed Cloud コネクテッドは、ストレージ デバイスの健全性を継続的にモニタリングし、物理ドライブの交換が必要な場合は Google にアラートを送信します。Google はお客様と協力して訪問日をスケジュールし、障害のあるドライブを交換します。DiskPressure などの Kubernetes 条件アラートを使用して、ストレージの健全性をモニタリングできます。

システム ストレージの健全性をモニタリングする

次のいずれかの方法を使用して、Distributed Cloud コネクテッド システム ストレージの健全性をモニタリングできます。

  • Kube 状態指標(PromQL)を使用した Prometheus。クラスタに Kube 状態指標をデプロイして管理し、Kubernetes 条件指標を公開します。

  • Cloud Monitoring の指標 。Cloud Monitoring にエクスポートされたホストレベルの指標に基づいてアラート ポリシーを作成します。

Prometheus でシステム ストレージの健全性をモニタリングする

Kube 状態指標(PromQL)を使用して Prometheus でシステム ストレージの健全性をモニタリングするには、次のアラートを設定します。

  1. ノード条件が DiskPressure 状態になったらすぐにアラートを送信します。

    kube_node_status_condition{condition="DiskPressure",status="true"} == 1
    
  2. ディスク使用量が運用しきい値を超えたときに、削除しきい値に違反する前にプロアクティブにアラートを送信します。

    (1 - (node_filesystem_avail_bytes{mountpoint="/mnt/shared_lpvs"} / node_filesystem_size_bytes{mountpoint="/mnt/shared_lpvs"})) > THRESHOLD
    

    THRESHOLD は、0.001.00 の範囲のターゲット運用しきい値に置き換えます。この値は 0.85 に設定することをおすすめします。

Cloud Monitoring でシステム ストレージの健全性をモニタリングする

Cloud Monitoring の指標を使用してシステム ストレージの健全性をモニタリングするには、次のパラメータでアラート ポリシーを作成します。

  • 指標: edgecontainer.googleapis.com/machine/disk/utilization
  • スコープ: この指標は、ノードのローカル システム パーティション ファイル システム(/dev/mapper/shared_lpvs_encrypted)のディスク使用率を報告します。
  • しきい値: ディスク使用率が 85% を超えたときにアラートを送信するしきい値を構成します。これにより、ハードノード DiskPressure イベントが発生する前に、システム ディスクの飽和状態を検出できます。

ワークロード ストレージの健全性をモニタリングする

ワークロードで使用されるボリュームモードに応じて、Kubelet ボリューム指標を使用するか、アプリケーション レベルのテレメトリーを直接使用して、ワークロード ストレージの健全性をモニタリングできます。

  • Filesystem ボリュームモード 。次の Kubelet ボリューム指標を取得することで、Prometheus を使用してファイル システム ボリュームをモニタリングできます。

    • kubelet_volume_stats_capacity_bytes
    • kubelet_volume_stats_available_bytes
    • kubelet_volume_stats_used_bytes
    • kubelet_volume_stats_inodes_used
    • kubelet_volume_stats_inodes_free
  • Block ボリュームモード 。Kubelet は、未加工のブロック ボリュームを認識できません。健全性をモニタリングするには、アプリケーション レベルまたは Symcloud Storage の指標を使用する必要があります。

マルチクラスタ モニタリング

多くの Distributed Cloud コネクテッド クラスタを管理する場合は、Cloud Monitoring を使用して指標を集計してフィルタすることをおすすめします。

  • リソースラベルを使用する: Cloud Monitoring にエクスポートされた指標には、ソースを識別する ラベルが含まれています。使用可能なラベルはリソースタイプによって異なります。

    • k8s_container などのクラスタとコンテナの指標の場合、主なラベルには次の値が含まれます。

      • project_id: クラスタをホストする Google Cloud プロジェクト。
      • location: クラスタが登録されている Google Cloud リージョン。
      • cluster_name: クラスタの名前。
    • edgecontainer.googleapis.com/machine などのハードウェア指標の場合、主なラベルには次の値が含まれます。

      • resource_container: Google Cloud ハードウェアに関連付けられたプロジェクト。
      • location: Distributed Cloud コネクテッド ゾーンが登録されている Google Cloud リージョン。
      • machine_id: マシンの識別子。

      ハードウェア指標には、cluster_name ラベルは直接含まれません。

  • カスタム ダッシュボードを作成する: フリート全体の主要な健全性 指標を表示するダッシュボードを作成します。主な健全性指標には、接続、VM のステータス、リソース使用量などがあります。複数のクラスタのデータを 1 つのグラフに表示するには、ワイルドカードまたはグループ化操作を使用します。

  • マルチクラスタ アラートを設定する: 複数のクラスタに適用されるアラート ポリシーを構成します。たとえば、クラスタ内のいずれかのマシンで接続が切断された場合にトリガーされるアラートを作成できます。

アラート戦略

Distributed Cloud コネクテッドのモニタリングとメンテナンスは、責任の共有です。このセクションでは、Google がアラートを送信する内容と、独自のアラート ポリシーを構成する方法について説明します。

Google がアラートを送信する内容

Google は基盤となるインフラストラクチャを継続的にモニタリングしています。必要に応じて、次の状況で対応し、通知します。

  • ハードウェア障害: 電源障害、ファンの故障、過熱、 ディスク障害(ディスクがスペアのしきい値に達した、または 使用可能な期間が終了したなど)。Google は内部ストレージ デバイスの健全性を継続的にモニタリングし、ストレージ デバイスに障害が発生すると自動的に交換を開始します。
  • 接続の問題: Distributed Cloud コネクテッド ゾーンと Google Cloud間の接続が完全に失われた。
  • コントロール プレーンの健全性: Kubernetes コントロール プレーンまたは Google マネージド システム サービスの障害。
  • アップグレードの失敗: 停止または失敗した自動アップグレード プロセス。

アラートの設定

ワークロードまたはローカル環境に影響する問題について、Cloud Monitoring または Prometheus で独自のアラート ポリシーを構成します。

次の問題についてアラートを設定できます。

問題 説明 モニタリング システム 詳細
ワークロードのダウンタイム Pod または VM が起動に失敗するか、クラッシュ ループが発生する Prometheus コンテナ ワークロードの場合は、kube_pod_status_phase でアラートを作成して、Failed または Unknown フェーズの Pod を検出します。kube_pod_container_status_waiting_reasonCrashLoopBackOff または ImagePullBackOff と等しい場合にアラートを送信することもできます。
Cloud Monitoring Pod で実行されている VM ワークロードの場合は、Cloud Monitoring で標準の Kubernetes コンテナ指標を使用してアラートを設定し、virt-launcher Pod のステータスを追跡します。
ワークロードのリソース不足 ディスク使用量が容量に近づいている、またはワークロードのメモリまたは CPU 使用率が高い Prometheus コンテナ ワークロードの場合は、container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes(cAdvisor から)にしきい値アラートを設定して、リソース上限に近づいている Pod を特定します。
Cloud Monitoring マシン ストレージの場合は、マシン ディスク使用率指標 edgecontainer.googleapis.com/machine/disk/utilization をモニタリングして、ノード ストレージが容量に近づいていることを検出します。
ローカル ネットワークの問題 マシンでネットワーク インターフェースがドロップする Cloud Monitoring マシン ネットワーク アップ指標 edgecontainer.googleapis.com/machine/network/upfalse かどうかをモニタリングします。
インターネット接続の切断 Cloud Monitoring ネットワーク接続指標 edgecontainer.googleapis.com/machine/network/connectivityfalse かどうかをモニタリングします。
マシンの再起動 予期しないマシンの再起動またはシャットダウン Cloud Monitoring edgecontainer.googleapis.com/machine/uptime 指標と edgecontainer.googleapis.com/machine/restart_count 指標を使用してアラートを構成します。詳細については、マシンの再起動のトラブルシューティングをご覧ください。
システム ストレージの不足 システム ストレージの容量が不足している Cloud Monitoring edgecontainer.googleapis.com/machine/disk/utilization 指標を使用してアラートを構成します。詳細については、システム ストレージの健全性をモニタリングするをご覧ください。

Distributed Cloud コネクテッド ハードウェアは Google によって管理されます。マシンへの SSH アクセスや、ホスト オペレーティング システムの制御はできません。 ネットワーク接続や再起動など、マシンレベルの指標に基づくアラートが発生した場合、物理電源、ケーブル接続、ローカル ネットワークとファイアウォールの構成の確認、または Google サポートへのエスカレーションに限定されます。