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_total と container_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 connected は、ストレージ デバイスの健全性を継続的にモニタリングし、物理ドライブの交換が必要になると Google にアラートを送信します。Google はお客様と協力して訪問をスケジュールし、故障したドライブを交換します。DiskPressure などの Kubernetes 条件アラートを使用して、ストレージの状態をモニタリングできます。

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

Distributed Cloud に接続されたシステム ストレージの健全性は、次のいずれかの方法でモニタリングできます。

  • Prometheus と Kube 状態指標(PromQL)。クラスタに 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.00~1.00 の範囲のターゲット運用しきい値に置き換えます。この値は 0.85 に設定することをおすすめします。

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

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

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

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

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

  • Filesystem ボリューム モード。Prometheus を使用してファイル システム ボリュームをモニタリングするには、次の Kubelet ボリューム指標をスクレイピングします。

    • 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: マシンの ID。

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

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

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

アラート戦略

Distributed Cloud connected のモニタリングとメンテナンスは、責任の共有モデルに基づいています。このセクションでは、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_reason が CrashLoopBackOff または ImagePullBackOff と等しい場合にアラートを出すこともできます。
Cloud Monitoring Pod で実行されている VM ワークロードの場合は、Cloud Monitoring で標準の Kubernetes コンテナ指標を使用してアラートを設定し、virt-launcher Pod のステータスを追跡します。
ワークロード リソースの枯渇 ディスク使用量が容量に近づいている、またはワークロードのメモリ使用量や CPU 使用率が高い Prometheus コンテナ ワークロードの場合は、container_cpu_usage_seconds_total と container_memory_working_set_bytes(cAdvisor から)にしきい値アラートを設定して、リソース上限に近づいている Pod を特定します。
Cloud Monitoring マシン ストレージの場合は、マシンディスク使用率の指標 edgecontainer.googleapis.com/machine/disk/utilization をモニタリングして、ノード ストレージが容量に近づいていることを検出します。
ローカル ネットワークの問題 マシンでのネットワーク インターフェースのドロップ Cloud Monitoring マシン ネットワーク稼働指標 edgecontainer.googleapis.com/machine/network/up が false かどうかをモニタリングします。
インターネット接続の切断 Cloud Monitoring ネットワーク接続指標 edgecontainer.googleapis.com/machine/network/connectivity が false かどうかをモニタリングします。
マシンの再起動 予期しないマシンの再起動またはシャットダウン Cloud Monitoring edgecontainer.googleapis.com/machine/uptime 指標と edg/1.13.0/docs/ogleapis.com/machine/restart_count 指標を使用してアラートを構成します。詳細については、マシンの再起動のトラブルシューティングをご覧ください。
システム ストレージの枯渇 システム ストレージの容量が不足している Cloud Monitoring edgecontainer.googleapis.com/machine/disk/utilization/1.13.0/docs/でアラートを構成します。詳細については、システム ストレージの健全性をモニタリングするをご覧ください。

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