Distributed Cloud コネクテッドのトラブルシューティング

Google は、Google Distributed Cloud に接続されたハードウェアをリモートでモニタリングし、メンテナンスします。このため、Google エンジニアは Distributed Cloud 接続ハードウェアへの Secure Shell(SSH)アクセス権を持っています。Google が問題を検出すると、Google のエンジニアからお客様に連絡して、トラブルシューティングと解決を行います。問題をご自身で特定した場合は、直ちに Google サポートにお問い合わせのうえ、診断と解決を依頼してください。

Distributed Cloud コネクテッド マシンの接続

このセクションでは、Cloud Monitoring の指標エクスプローラ機能を使用して、Distributed Cloud に接続されたマシンのインターネットと Google Cloud の接続を確認する方法について説明します。

この手順では、次の Monitoring 指標を使用します。

  • Machine Connected/machine/connected): マシンが Google Cloudに接続されているかどうかを示します。

  • ネットワーク接続/machine/network/connectivity): マシンのプライマリ ネットワーク インターフェースにインターネット接続があるかどうかを示します。

このセクションの手順を完了するには、次の前提条件を満たす必要があります。

  1. Google Cloud コンソールと Distributed Cloud に接続された Google Cloud プロジェクトへのアクセス権。
  2. Monitoring 指標を表示できる Monitoring 閲覧者 IAM ロール。
  3. (省略可)返される結果をフィルタリングするための、ターゲットの Distributed Cloud コネクテッド マシンの machine_id 値。

Metrics Explorer を使用してマシンの接続を検証する

  1. Metrics Explorer に移動します。

    1. Google Cloud コンソールで、[モニタリング] セクションに移動します。

    2. 左側のナビゲーション ツリーで、[Metrics Explorer] をクリックします。

  2. ターゲット リソースタイプを選択します。

    1. [Metrics Explorer] ページで、[クエリ] ページに移動します。

    2. 検索バーを使用して、マシン リソースタイプを検索します。完全なリソース識別子 edgecontainer.googleapis.com/Machine を使用することもできます。

    3. 返された結果で、[マシン] リソースタイプをクリックします。

  3. マシンが Google Cloudに接続されていることを確認します。

    1. [指標] セクションで、connected 値を検索します。

    2. [マシン接続] 指標を選択します。完全なパスは edgecontainer.googleapis.com/machine/connected です。

    3. (省略可)[フィルタ] セクションを使用して、ターゲットの machine_id 値でフィルタします。

    4. 表示された時間グラフで、[正常] の線が 100% のままになっていることを確認します。この値が 0% または [Unhealthy] になった場合、マシンは示された時間に Google Cloud との接続を失っています。

  4. マシンのインターネット接続を検証します。

    1. [指標] セクションで、connectivity 値を検索します。

    2. [ネットワーク接続] 指標を選択します。完全なパスは edgecontainer.googleapis.com/machine/network/connectivity です。

    3. (省略可)[フィルタ] セクションを使用して、ターゲットの machine_id 値でフィルタします。

    4. 表示された時間グラフで、[正常] の線が 100% のままになっていることを確認します。この値が 0% Unhealthy になった場合、マシンは示された時間にインターネット接続を失っています。

検証結果を理解する

次の表に、Metrics Explorer から返される結果を示します。

マシンの状態 診断 解決策
正常
「マシン接続」指標の値が 1
「ネットワーク接続」指標の値が 1
通常のオペレーション。 なし
切断
「マシン接続」指標の値は 0
「ネットワーク接続」指標の値は 1
マシンはインターネットに接続されているが、 Google Cloudに接続できない。 Google サービスと API エンドポイントの [ファイアウォール ルール](distributed-cloud/connected/latest/docs/requirements#connected_management_and_monitoring_traffic)を確認します。Distributed Cloud 接続エージェントがマシンで実行されていることを確認します。
分離
「マシン接続」指標の値は 0
「ネットワーク接続」指標の値は 0
マシンがインターネットに接続されていない。 電源ケーブルとネットワーク ケーブル、ローカル ネットワーク構成、マシンの LED ステータスを確認します。VLAN とルーティングの構成を確認します。
断続的
「マシン接続」指標の値が 01 の間で交互に変化する
「ネットワーク接続」指標の値が 01 の間で交互に変化する
ネットワーク接続が不安定である、パケットロスが発生している、レイテンシが過剰である。 ローカル ネットワークで輻輳やハードウェアの障害が発生していないか確認します。

いずれかの指標で 0 の値が継続的に確認される場合は、表に記載されているトラブルシューティングの手順に沿って問題を解決してください。問題が解決しない場合は、影響を受けるマシンの machine_id 値と停止のタイムスタンプを添えて、Google サポートにお問い合わせください。

仮想マシンが Pending 状態のままになる

次のいずれかの状況が発生すると、仮想マシン ワークロードが Pending 状態で停止し、ノードでスケジュール設定に失敗する可能性があります。

  • Distributed Cloud Connected は、リクエストされたリソース(CPU 時間、メモリ、ディスク容量など)を仮想マシンに割り当てることができません。
  • 仮想マシンの構成に障害があります。
  • 仮想マシンのストレージに障害が発生しています。
  • ターゲット ノードが汚染されています。

この問題を解決するには、次の操作を行います。

  1. クラスタの認証情報を取得するの説明に沿って、クラスタの認証情報を取得します。

  2. 影響を受けた仮想マシンに関する情報を取得します。

    kubectl describe virtualmachine VM_NAME -n NAMESPACE
    

    次のように置き換えます。

    • VM_NAME: ターゲット仮想マシンの名前。
    • NAMESPACE: ターゲット仮想マシンの Namespace。

    このコマンドでは、次のような出力が返されます。

    Status:
    ...
    State:                    Pending
    ...
    Events:
    Type     Reason                  Age   From                       Message
    ----     ------                  ----  ----                       -------
    Normal   SuccessfulCreate        15m   virtualmachine-controller  Created virtual machine my-stuck-vm
    Warning  DiskProvisioningFailed  14m   virtualmachine-controller  Failed to provision disk: DataVolume my-stuck-vm-data-disk not ready
    Warning  PVCNotBound             14m   virtualmachine-controller  PersistentVolumeClaim my-stuck-vm-data-disk is in phase Pending
    Warning  VMINotCreated           10m   virtualmachine-controller  VirtualMachineInstance cannot be created: dependencies not ready
    

    コマンドの出力には、リソースの制約、スケジューリングの失敗、ストレージ障害などの問題を示すメッセージが含まれています。

  3. 出力で、次のセクションで説明するように、スケジューリングの失敗の原因を特定します。

リソースの不足

CPU、メモリ、ディスク容量などのリソースが不足していることを示すメッセージが表示されることがあります。次に例を示します。

5/8 nodes are available: 3 Insufficient memory, 3 Insufficient CPU.

この問題を解決するには、影響を受ける仮想マシンとノードでスケジュールされている他のワークロードに割り当てられているリソースを確認し、ビジネスニーズに応じて次の操作を行います。

  • ノードでスケジュールされている他のワークロードをスケールダウンする。
  • 影響を受ける仮想マシンに割り当てられているリソースの量を減らします。
  • 影響を受けるクラスタにマシンを追加します。

taint を追加したノード

ターゲット ノードが汚染されていることを示すメッセージが表示されることがあります。次に例を示します。

5/8 nodes are available: 3 node(s) had taint {<taint-key>:<taint-value>}, that the pod didn't tolerate.

この問題を解決するには、次の操作を行います。

  1. 次のコマンドを使用して、ノードの taint を確認します。

    kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
    

    このコマンドでは、次のような出力が返されます。

    NAME                           TAINTS
    node-name-1   [map[effect:PreferNoSchedule key:node-role.kubernetes.io/master] map[effect:PreferNoSchedule key:node-role.kubernetes.io/control-plane]]
    node-name-2   <none>
    
  2. 次のいずれかを行います。

    • 予期しない taint がある場合は、taint と toleration の説明に沿って削除します。
    • 想定される taint については、taint と toleration で説明されているように、対応する toleration を仮想マシンの構成に追加します。

ストレージの障害

仮想マシンのストレージに障害があることを示すメッセージが表示されることがあります。次に例を示します。

5/8 nodes are available: 3 node(s) had volume node affinity conflict, 3 node(s) had unbound immediate PersistentVolumeClaims.

このメッセージは、対応する永続ボリュームがターゲット ノードにマウントされていないことを示している可能性があります。

この問題を解決するには、次の操作を行います。

  1. 次のコマンドを使用して、影響を受ける仮想マシンの Namespace 内の永続ボリューム クレーム(PVC)のステータスを取得します。

    kubectl get pvc -n NAMESPACE
    

    NAMESPACE は、ターゲット Namespace の名前に置き換えます。

    このコマンドでは、次のような出力が返されます。

    NAME                                               STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS            AGE
    windows-robin-disk-0                               Bound     pvc-b1a1d264-84bf-4e58-857d-f37f629d5082   25Gi       RWX            robin-block-immediate   30h
    windows-robin-disk-1                               Bound     pvc-0130b9a8-7fed-4df0-8226-d79273792a16   25Gi       RWX            robin-block-immediate   30h
    windows-robin-vm-0-restored-windows-robin-disk-0   Pending                                                                        gce-pd-gkebackup-in     26m
    
  2. 対応する PVC のステータスが Bound であることを確認します。ステータスが Pending の場合、ストレージ サブシステムはボリュームのプロビジョニングに失敗しています。このような場合は、ストレージ サブシステムの構成をトラブルシューティングし、適切な StorageClass が利用可能であることを確認する必要があります。